microsoft / EasyRepro
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
  • 18% duplication:
    • 16,243 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 3,036 duplicated lines
  • 333 duplicates
system18% (3,036 lines)
Duplication per Extension
cs18% (3,036 lines)
Duplication per Component (primary)
Microsoft.Dynamics365.UIAutomation.Api/Pages23% (835 lines)
Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO42% (486 lines)
Microsoft.Dynamics365.UIAutomation.Api/DTOs60% (486 lines)
Microsoft.Dynamics365.UIAutomation.Sample/UCI24% (428 lines)
Microsoft.Dynamics365.UIAutomation.Sample/Web14% (331 lines)
Microsoft.Dynamics365.UIAutomation.Api26% (210 lines)
Microsoft.Dynamics365.UIAutomation.Api.UCI5% (151 lines)
Microsoft.Dynamics365.UIAutomation.Browser3% (51 lines)
Microsoft.Dynamics365.UIAutomation.Browser/Logs16% (16 lines)
Microsoft.Dynamics365.UIAutomation.Api.UCI/Controls13% (15 lines)
Microsoft.Dynamics365.UIAutomation.Api/Controls30% (15 lines)
Microsoft.Dynamics365.UIAutomation.Sample/SharedAPI5% (12 lines)
Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Api.UCI/Properties0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Api/Properties0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Browser/DTOs0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Browser/Extensions0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Browser/Properties0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Browser/Resources0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Sample/AzureDevOps0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Sample0% (0 lines)
Microsoft.Dynamics365.UIAutomation.Sample/Properties0% (0 lines)

Duplication Between Components (50+ lines)

G Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO Microsoft.Dynamics365.UIAutomation.Api/DTOs Microsoft.Dynamics365.UIAutomation.Api/DTOs Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO--Microsoft.Dynamics365.UIAutomation.Api/DTOs 972 Microsoft.Dynamics365.UIAutomation.Api/Pages Microsoft.Dynamics365.UIAutomation.Api/Pages Microsoft.Dynamics365.UIAutomation.Api Microsoft.Dynamics365.UIAutomation.Api Microsoft.Dynamics365.UIAutomation.Api/Pages--Microsoft.Dynamics365.UIAutomation.Api 380

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 333 duplicates...
Size#FoldersFilesLinesCode
72 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
634:728 (12%)
762:856 (10%)
view
38 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
263:318 (6%)
326:381 (5%)
view
37 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
322:386 (6%)
386:450 (5%)
view
32 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
146:185 (5%)
211:250 (4%)
view
30 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
481:519 (5%)
565:603 (4%)
view
28 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
223:259 (4%)
287:323 (4%)
view
27 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api
Lookup.cs
XrmPage.cs
148:194 (19%)
149:195 (3%)
view
25 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
442:479 (4%)
525:562 (3%)
view
22 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
605:630 (3%)
733:758 (3%)
view
21 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
582:618 (2%)
298:334 (5%)
view
21 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
288:324 (2%)
298:334 (5%)
view
21 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
442:477 (2%)
160:195 (5%)
view
21 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
Entity.cs
288:324 (2%)
582:618 (2%)
view
20 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api
Entity.cs
XrmPage.cs
2075:2109 (1%)
1039:1073 (2%)
view
19 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
520:538 (3%)
605:623 (2%)
view
19 x 2 Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO
Microsoft.Dynamics365.UIAutomation.Api/DTOs
ElementReference.cs
ElementReference.cs
46:69 (3%)
63:86 (2%)
view
18 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
1358:1393 (1%)
381:416 (4%)
view
17 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
Entity.cs
1049:1076 (1%)
1358:1385 (1%)
view
17 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
1049:1076 (1%)
381:408 (4%)
view
17 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api
QuickCreate.cs
XrmPage.cs
575:610 (4%)
702:738 (2%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 27 unit duplicates...
Size#FoldersFilesLinesCode
31 x 3 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
Entity.cs
QuickCreate.cs
284:325 
578:619 
294:335 
view
30 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api
Entity.cs
XrmPage.cs
2071:2110 
1035:1074 
view
27 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
363:395 
81:113 
view
27 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
2117:2153 
807:843 
view
25 x 3 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
Entity.cs
QuickCreate.cs
1045:1077 
1354:1386 
377:409 
view
24 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
402:431 
120:149 
view
21 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
332:356 
50:74 
view
20 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
497:521 
213:237 
view
19 x 2 Microsoft.Dynamics365.UI...e/Web/NegativeScenarios
Microsoft.Dynamics365.UI...e/Web/NegativeScenarios
InvalidSubArea.cs
InvalidSwitchView.cs
21:42 
21:42 
view
18 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
1440:1462 
463:485 
view
15 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
1393:1409 
416:432 
view
15 x 2 Microsoft.Dynamics365.UIAutomation.Api/Pages
Microsoft.Dynamics365.UIAutomation.Api/Pages
Entity.cs
QuickCreate.cs
1416:1433 
439:456 
view
14 x 4 Microsoft.Dynamics365.UI...ation.Sample/UCI/Delete
Microsoft.Dynamics365.UI...ation.Sample/UCI/Delete
Microsoft.Dynamics365.UI...ation.Sample/UCI/Delete
Microsoft.Dynamics365.UI...ation.Sample/UCI/Delete
DeleteAccount.cs
DeleteContact.cs
DeleteLead.cs
DeleteOpportunity.cs
22:47 
22:47 
22:47 
22:47 
view
14 x 2 Microsoft.Dynamics365.UI...ation.Sample/UCI/Update
Microsoft.Dynamics365.UI...ation.Sample/UCI/Update
UpdateLead.cs
UpdateOpportunity.cs
22:45 
22:44 
view
13 x 3 Microsoft.Dynamics365.UI...ation.Sample/Web/Delete
Microsoft.Dynamics365.UI...ation.Sample/Web/Delete
Microsoft.Dynamics365.UI...ation.Sample/Web/Delete
DeleteAccount.cs
DeleteContact.cs
DeleteLead.cs
20:44 
20:44 
20:44 
view
12 x 2 Microsoft.Dynamics365.UI...ion.Sample/UCI/Controls
Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read
Grid.cs
OpenAccount.cs
67:86 
116:135 
view
12 x 2 Microsoft.Dynamics365.UI...mple/UCI/Labs/TestsBase
Microsoft.Dynamics365.UI...mple/UCI/Labs/TestsBase
1_Lab_TestsClass.cs
2_Lab_TestsBase_ReadConfigParameters.cs
42:59 
35:51 
view
11 x 2 Microsoft.Dynamics365.UI...ion.Sample/UCI/Controls
Microsoft.Dynamics365.UIAutomation.Sample/UCI
Grid.cs
SetValue.cs
31:46 
21:37 
view
11 x 2 Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read
Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read
OpenContact.cs
OpenOpportunity.cs
23:40 
22:39 
view
10 x 2 Microsoft.Dynamics365.UIAutomation.Sample/Web/Read
Microsoft.Dynamics365.UI...mation.Sample/Web/Views
OpenAccount.cs
Views.cs
21:36 
53:65 
view