microsoft / Partner-Center-DotNet-Samples
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
  • 12% duplication:
    • 4,870 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 621 duplicated lines
  • 75 duplicates
system12% (621 lines)
Duplication per Extension
cs13% (621 lines)
Duplication per Component (primary)
sdk/SdkSamples/Invoice47% (161 lines)
secure-app-model/keyvault/CPVApplication45% (90 lines)
secure-app-model/keyvault/CSPApplication33% (89 lines)
sdk/SdkSamples/Auditing43% (51 lines)
sdk/SdkSamples/IndirectModel34% (48 lines)
sdk/SdkSamples/CustomerUser13% (44 lines)
sdk/SdkSamples/IndirectPartners100% (27 lines)
sdk/SdkSamples/Orders18% (26 lines)
secure-app-model/keyvault/PartnerConsent11% (24 lines)
sdk/SdkSamples/Validations40% (22 lines)
sdk/SdkSamples/Carts12% (18 lines)
sdk/SdkSamples/Subscriptions3% (12 lines)
sdk/SdkSamples/Customers3% (9 lines)
ROOT0% (0 lines)
sdk/SdkSamples0% (0 lines)
sdk/SdkSamples/Agreements0% (0 lines)
sdk/SdkSamples/Analytics0% (0 lines)
sdk/SdkSamples/Compliance0% (0 lines)
sdk/SdkSamples/Configuration0% (0 lines)
sdk/SdkSamples/Context0% (0 lines)
sdk/SdkSamples/CustomerDirectoryRoles0% (0 lines)
sdk/SdkSamples/CustomerProducts0% (0 lines)
sdk/SdkSamples/CustomerServiceCosts0% (0 lines)
sdk/SdkSamples/CustomerSubscribedSkus0% (0 lines)
sdk/SdkSamples/DevicesDeployment0% (0 lines)
sdk/SdkSamples/Entitlements0% (0 lines)
sdk/SdkSamples/Helpers0% (0 lines)
sdk/SdkSamples/NewCommerceMigrations0% (0 lines)
sdk/SdkSamples/Offers0% (0 lines)
sdk/SdkSamples/Products0% (0 lines)
sdk/SdkSamples/Profile0% (0 lines)
sdk/SdkSamples/PromotionEligibilities0% (0 lines)
sdk/SdkSamples/Properties0% (0 lines)
sdk/SdkSamples/RateCards0% (0 lines)
sdk/SdkSamples/RatedUsage0% (0 lines)
sdk/SdkSamples/ScenarioExecution0% (0 lines)
sdk/SdkSamples/SelfServePolicies0% (0 lines)
sdk/SdkSamples/ServiceIncidents0% (0 lines)
sdk/SdkSamples/ServiceRequests0% (0 lines)
sdk/SdkSamples/Utilization0% (0 lines)

Duplication Between Components (50+ lines)

G secure-app-model/keyvault/CPVApplication secure-app-model/keyvault/CPVApplication secure-app-model/keyvault/CSPApplication secure-app-model/keyvault/CSPApplication secure-app-model/keyvault/CPVApplication--secure-app-model/keyvault/CSPApplication 178 secure-app-model/keyvault/PartnerConsent secure-app-model/keyvault/PartnerConsent secure-app-model/keyvault/CPVApplication--secure-app-model/keyvault/PartnerConsent 75 secure-app-model/keyvault/CSPApplication--secure-app-model/keyvault/PartnerConsent 73 sdk/SdkSamples/IndirectModel sdk/SdkSamples/IndirectModel sdk/SdkSamples/IndirectPartners sdk/SdkSamples/IndirectPartners sdk/SdkSamples/IndirectModel--sdk/SdkSamples/IndirectPartners 54

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
51 x 2 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
ApiCalls.cs
ApiCalls.cs
1:137 (100%)
1:138 (100%)
view
24 x 2 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/PartnerConsent/Utilities
AuthorizationUtilities.cs
AuthorizationUtilities.cs
42:105 (64%)
44:107 (63%)
view
23 x 2 secure-app-model/keyvault/CSPApplication/Utilities
secure-app-model/keyvault/PartnerConsent/Utilities
AuthorizationUtilities.cs
AuthorizationUtilities.cs
24:77 (92%)
54:107 (60%)
view
23 x 2 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
AuthorizationUtilities.cs
AuthorizationUtilities.cs
52:105 (62%)
24:77 (92%)
view
20 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetUsageLineItemsForOpenPeriodPaging.cs
61:95 (39%)
63:97 (39%)
view
19 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetInvoiceLineItems.cs
GetUsageLineItemsForClosePeriodPaging.cs
76:109 (26%)
62:95 (38%)
view
15 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetInvoiceLineItems.cs
70:95 (29%)
84:109 (21%)
view
15 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetUsageLineItemsForClosePeriodPaging.cs
GetUsageLineItemsForOpenPeriodPaging.cs
70:95 (30%)
72:97 (29%)
view
15 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetInvoiceLineItems.cs
GetUsageLineItemsForOpenPeriodPaging.cs
84:109 (21%)
72:97 (29%)
view
15 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetUsageLineItemsForClosePeriodPaging.cs
70:95 (29%)
70:95 (30%)
view
14 x 2 sdk/SdkSamples/IndirectModel
sdk/SdkSamples/IndirectPartners
VerifyPartnerMpnId.cs
VerifyPartnerMpnId.cs
1:44 (100%)
1:45 (100%)
view
14 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetUsageLineItemsForClosePeriodPaging.cs
GetUsageLineItemsForOpenPeriodPaging.cs
103:131 (28%)
105:133 (27%)
view
14 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetUsageLineItemsForClosePeriodPaging.cs
103:131 (27%)
103:131 (28%)
view
14 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetUsageLineItemsForOpenPeriodPaging.cs
103:131 (27%)
105:133 (27%)
view
13 x 2 sdk/SdkSamples/Auditing
sdk/SdkSamples/Auditing
SearchAuditRecordsByCustomerId.cs
SearchAuditRecordsByResourceType.cs
50:74 (52%)
90:114 (28%)
view
13 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetInvoiceLineItems.cs
110:131 (25%)
151:172 (18%)
view
13 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetInvoiceLineItems.cs
GetUsageLineItemsForClosePeriodPaging.cs
151:172 (18%)
110:131 (26%)
view
13 x 2 sdk/SdkSamples/IndirectModel
sdk/SdkSamples/IndirectPartners
GetSubscriptionsByMpnId.cs
GetSubscriptionsByMpnId.cs
1:40 (100%)
1:41 (100%)
view
13 x 2 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetInvoiceLineItems.cs
GetUsageLineItemsForOpenPeriodPaging.cs
151:172 (18%)
112:133 (25%)
view
13 x 2 sdk/SdkSamples/Auditing
sdk/SdkSamples/Auditing
SearchAuditRecords.cs
SearchAuditRecordsByCustomerId.cs
50:74 (52%)
50:74 (52%)
view
Duplicated Units
The list of top 8 duplicated units.
See data for all 8 unit duplicates...
Size#FoldersFilesLinesCode
35 x 2 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
ApiCalls.cs
ApiCalls.cs
62:100 
63:101 
view
28 x 3 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
ApiCalls.cs
ApiCalls.cs
ApiCalls.cs
23:53 
108:138 
23:54 
view
28 x 3 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
secure-app-model/keyvault/PartnerConsent/Utilities
AuthorizationUtilities.cs
AuthorizationUtilities.cs
AuthorizationUtilities.cs
76:106 
48:78 
78:108 
view
20 x 4 sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
sdk/SdkSamples/Invoice
GetBillingLineItemsForOpenPeriodPagin...
GetInvoiceLineItems.cs
GetUsageLineItemsForClosePeriodPaging.cs
GetUsageLineItemsForOpenPeriodPaging.cs
110:133 
151:174 
110:133 
112:135 
view
12 x 2 sdk/SdkSamples/IndirectModel
sdk/SdkSamples/IndirectPartners
VerifyPartnerMpnId.cs
VerifyPartnerMpnId.cs
27:45 
28:46 
view
12 x 3 secure-app-model/keyvault/CPVApplication/Utilities
secure-app-model/keyvault/CSPApplication/Utilities
secure-app-model/keyvault/PartnerConsent/Utilities
AuthorizationUtilities.cs
AuthorizationUtilities.cs
AuthorizationUtilities.cs
52:68 
24:40 
54:70 
view
11 x 2 sdk/SdkSamples/IndirectModel
sdk/SdkSamples/IndirectPartners
GetSubscriptionsByMpnId.cs
GetSubscriptionsByMpnId.cs
27:41 
28:42 
view
7 x 2 sdk/SdkSamples
sdk/SdkSamples
BasePartnerScenario.cs
BasePartnerScenario.cs
404:411 
499:506 
view