aws-samples / aws-iot-core-http-sigv4-dotnet-app
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
  • 90% duplication:
    • 1,151 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,040 duplicated lines
  • 73 duplicates
system90% (1,040 lines)
Duplication per Extension
cs91% (1,040 lines)
Duplication per Component (primary)
Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers99% (415 lines)
Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers99% (415 lines)
Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils72% (69 lines)
Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils60% (69 lines)
Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app67% (36 lines)
Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app85% (36 lines)
Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Properties0% (0 lines)

Duplication Between Components (50+ lines)

G Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers--Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Signers 830 Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils--Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app/Utils 138 Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app Dotnet Core/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app--Dotnet/aws-iot-http-sigv4-dotnet-app/aws-iot-http-sigv4-dotnet-app 72

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 73 duplicates...
Size#FoldersFilesLinesCode
134 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
1:326 (100%)
1:326 (100%)
view
78 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
13:228 (98%)
13:228 (98%)
view
73 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForQueryParameterAuth.cs
AWS4SignerForQueryParameterAuth.cs
1:160 (100%)
1:160 (100%)
view
68 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForPOST.cs
AWS4SignerForPOST.cs
1:150 (100%)
1:150 (100%)
view
62 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForAuthorizationHeader.cs
1:135 (100%)
1:135 (100%)
view
61 x 2 Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
HttpHelpers.cs
HttpHelper.cs
1:164 (100%)
1:163 (100%)
view
60 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
57:150 (88%)
42:135 (96%)
view
60 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
60 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
60 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
42:135 (96%)
57:150 (88%)
view
31 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
91:140 (23%)
71:120 (45%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
91:140 (23%)
71:120 (45%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForPOST.cs
91:140 (23%)
71:120 (45%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
91:140 (23%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForPOST.cs
AWS4SignerForChunkedUpload.cs
71:120 (45%)
91:140 (23%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForAuthorizationHeader.cs
91:140 (23%)
56:105 (50%)
view
31 x 2 Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
91:140 (23%)
view
31 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForChunkedUpload.cs
56:105 (50%)
91:140 (23%)
view
23 x 2 Dotnet Core/aws-iot...t-http-sigv4-dotnet-app
Dotnet/aws-iot-http-sigv...t-http-sigv4-dotnet-app
Program.cs
Program.cs
35:70 (62%)
35:69 (62%)
view
13 x 2 Dotnet Core/aws-iot...t-http-sigv4-dotnet-app
Dotnet/aws-iot-http-sigv...t-http-sigv4-dotnet-app
Program.cs
Program.cs
1:32 (35%)
1:32 (35%)
view
Duplicated Units
The list of top 17 duplicated units.
See data for all 17 unit duplicates...
Size#FoldersFilesLinesCode
81 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForQueryParameterAuth.cs
AWS4SignerForQueryParameterAuth.cs
41:161 
41:161 
view
67 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
77:176 
77:176 
view
65 x 4 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
AWS4SignerForPOST.cs
AWS4SignerForAuthorizationHeader.cs
57:151 
42:136 
57:151 
42:136 
view
34 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
HttpHelper.cs
HttpHelpers.cs
21:57 
21:57 
view
24 x 2 Dotnet/aws-iot-http-sigv...t-http-sigv4-dotnet-app
Dotnet Core/aws-iot...t-http-sigv4-dotnet-app
Program.cs
Program.cs
40:70 
40:71 
view
18 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
HttpHelper.cs
HttpHelpers.cs
67:88 
67:88 
view
18 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
HttpHelper.cs
HttpHelpers.cs
90:110 
90:110 
view
17 x 2 Dotnet/aws-iot-http-sigv...t-http-sigv4-dotnet-app
Dotnet Core/aws-iot...t-http-sigv4-dotnet-app
Program.cs
Program.cs
12:30 
12:30 
view
16 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
HttpHelper.cs
HttpHelpers.cs
119:138 
119:138 
view
16 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
99:124 
99:124 
view
15 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
143:162 
143:162 
view
13 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
HttpHelper.cs
HttpHelpers.cs
147:164 
148:165 
view
13 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
192:208 
192:208 
view
12 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
78:91 
78:91 
view
8 x 2 Dotnet/aws-iot-http-sigv...-sigv4-dotnet-app/Utils
Dotnet Core/aws-iot...-sigv4-dotnet-app/Utils
JsonHelper.cs
JsonHelper.cs
8:19 
8:19 
view
8 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerBase.cs
AWS4SignerBase.cs
221:229 
221:229 
view
8 x 2 Dotnet/aws-iot-http-sigv...igv4-dotnet-app/Signers
Dotnet Core/aws-iot...igv4-dotnet-app/Signers
AWS4SignerForChunkedUpload.cs
AWS4SignerForChunkedUpload.cs
222:230 
222:230 
view