aws-samples / aws-iot-core-dotnet-app-mqtt-over-websockets-sigv4
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 64% duplication:
    • 1,605 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,028 duplicated lines
  • 75 duplicates
system64% (1,028 lines)
Duplication per Extension
cs64% (1,028 lines)
Duplication per Component (primary)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Signers99% (415 lines)
Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Signers99% (415 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Utils71% (61 lines)
Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Utils57% (61 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Model79% (19 lines)
Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Model47% (19 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Presenter32% (19 lines)
Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Messaging34% (19 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Properties0% (0 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp0% (0 lines)
Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/View0% (0 lines)
Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets0% (0 lines)

Duplication Between Components (50+ lines)

G Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Signers Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Signers Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Signers Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Signers Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Signers--Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Signers 830 Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Utils Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Utils Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Utils Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Utils Dotnet core console app/AwsIOTMqttOverWebsockets/AwsIOTMqttOverWebsockets/Utils--Dotnet win app/awsiotmqttoverwebsocketswinapp/awsiotmqttoverwebsocketswinapp/Utils 122

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 75 duplicates...
Size#FoldersFilesLinesCode
134 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
1:326 (100%)
1:325 (100%)
view
79 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
1:228 (100%)
1:228 (100%)
view
72 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForQueryParameterAuth.cs
AWS4SignerForQueryParameterAuth.cs
15:160 (98%)
15:160 (98%)
view
68 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForPOST.cs
AWS4SignerForPOST.cs
1:150 (100%)
1:150 (100%)
view
62 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForAuthorizationHeader.cs
1:135 (100%)
1:135 (100%)
view
61 x 2 Dotnet core co...qttOverWebsockets/Utils
Dotnet win app...rwebsocketswinapp/Utils
HttpHelpers.cs
HttpHelpers.cs
1:164 (100%)
1:164 (100%)
view
60 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
60 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
57:150 (88%)
42:135 (96%)
view
60 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
60 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
31 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
90:139 (23%)
71:120 (45%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForPOST.cs
AWS4SignerForChunkedUpload.cs
71:120 (45%)
90:139 (23%)
view
31 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
90:139 (23%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
91:140 (23%)
71:120 (45%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
90:139 (23%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
91:140 (23%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForAuthorizationHeader.cs
91:140 (23%)
56:105 (50%)
view
31 x 2 Dotnet core co...tOverWebsockets/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
91:140 (23%)
71:120 (45%)
view
12 x 2 Dotnet core co...qttOverWebsockets/Model
Dotnet win app...rwebsocketswinapp/Model
AwsMqttConnection.cs
AwsMqttConnection.cs
1:22 (52%)
1:22 (50%)
view
7 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet win app...ebsocketswinapp/Signers
AWS4SignerForPOST.cs
AWS4SignerForQueryParameterAuth.cs
105:111 (10%)
109:115 (9%)
view
Duplicated Units
The list of top 14 duplicated units.
See data for all 14 unit duplicates...
Size#FoldersFilesLinesCode
81 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForQueryParameterAuth.cs
AWS4SignerForQueryParameterAuth.cs
41:161 
41:161 
view
67 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
76:175 
77:176 
view
65 x 4 Dotnet win app...ebsocketswinapp/Signers
Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
57:151 
42:136 
57:151 
42:136 
view
34 x 2 Dotnet win app...rwebsocketswinapp/Utils
Dotnet core co...qttOverWebsockets/Utils
HttpHelpers.cs
HttpHelpers.cs
21:57 
21:57 
view
18 x 2 Dotnet win app...rwebsocketswinapp/Utils
Dotnet core co...qttOverWebsockets/Utils
HttpHelpers.cs
HttpHelpers.cs
67:88 
67:88 
view
18 x 2 Dotnet win app...rwebsocketswinapp/Utils
Dotnet core co...qttOverWebsockets/Utils
HttpHelpers.cs
HttpHelpers.cs
90:110 
90:110 
view
16 x 2 Dotnet win app...rwebsocketswinapp/Utils
Dotnet core co...qttOverWebsockets/Utils
HttpHelpers.cs
HttpHelpers.cs
119:138 
119:138 
view
16 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
99:124 
99:124 
view
15 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
143:162 
143:162 
view
13 x 2 Dotnet win app...rwebsocketswinapp/Utils
Dotnet core co...qttOverWebsockets/Utils
HttpHelpers.cs
HttpHelpers.cs
148:165 
148:165 
view
13 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
191:207 
192:208 
view
12 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
78:91 
78:91 
view
8 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
221:229 
221:229 
view
8 x 2 Dotnet win app...ebsocketswinapp/Signers
Dotnet core co...tOverWebsockets/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
221:229 
222:230 
view