Backoffice Caching: Added cache buster for block list stylesheets (closes #20683) #20686
CodeScene PR Check
Quality Gate Failed
Code Health Improved
(13 files improve in Code Health)
Gates Failed
Prevent hotspot decline
(1 hotspot with Complex Method)
New code is healthy
(4 new files with code health below 8.00)
Enforce critical code health rules
(11 files with Bumpy Road Ahead, Deep, Nested Complexity, Low Cohesion)
Enforce advisory code health rules
(23 files with Code Duplication, Complex Method, Constructor Over-Injection, Complex Conditional, Primitive Obsession, Excess Number of Function Arguments, Overall Code Complexity, Missing Arguments Abstractions, Large Method, Lines of Code in a Single File)
See analysis details in CodeScene
Reason for failure
| Prevent hotspot decline | Violations | Code Health Impact | |
|---|---|---|---|
| ContentService.cs | 1 rule in this hotspot | 2.39 → 2.37 | Suppress |
| New code is healthy | Violations | Code Health Impact | |
|---|---|---|---|
| ContentStore.cs | 7 rules | 5.42 | Suppress |
| PublishedSnapshotService.cs | 6 rules | 5.94 | Suppress |
| edit.controller.js | 5 rules | 6.21 | Suppress |
| umbBlockListPropertyEditor.component.js | 5 rules | 6.67 | Suppress |
| Enforce critical code health rules | Violations | Code Health Impact | |
|---|---|---|---|
| ContentStore.cs | 1 critical rule | 5.42 | Suppress |
| PublishedSnapshotService.cs | 1 critical rule | 5.94 | Suppress |
| edit.controller.js | 2 critical rules | 6.21 | Suppress |
| umbBlockListPropertyEditor.component.js | 1 critical rule | 6.67 | Suppress |
| AuthenticationController.cs | 1 critical rule | 8.66 | Suppress |
| StaticFilesTreeController.cs | 1 critical rule | 8.68 | Suppress |
| DataTypeController.cs | 1 critical rule | 8.71 | Suppress |
| BackOfficeController.cs | 1 critical rule | 8.78 | Suppress |
| PreviewController.cs | 1 critical rule | 9.19 | Suppress |
| NotificationService.cs | 1 critical rule | 6.73 → 6.58 | Suppress |
| UserRepository.cs | 1 critical rule | 4.16 → 4.44 | Suppress |
| Enforce advisory code health rules | Violations | Code Health Impact | |
|---|---|---|---|
| ContentStore.cs | 6 advisory rules | 5.42 | Suppress |
| PublishedSnapshotService.cs | 5 advisory rules | 5.94 | Suppress |
| edit.controller.js | 3 advisory rules | 6.21 | Suppress |
| umbBlockListPropertyEditor.component.js | 4 advisory rules | 6.67 | Suppress |
| UmbracoBuilder.BackOfficeAuth.cs | 1 advisory rule | 8.52 | Suppress |
| AuthenticationController.cs | 3 advisory rules | 8.66 | Suppress |
| StaticFilesTreeController.cs | 3 advisory rules | 8.68 | Suppress |
| DataTypeController.cs | 2 advisory rules | 8.71 | Suppress |
| BackOfficeController.cs | 3 advisory rules | 8.78 | Suppress |
| datepicker.controller.js | 2 advisory rules | 8.82 | Suppress |
| RichTextPropertyEditor.cs | 2 advisory rules | 9.39 → 8.55 | Suppress |
| PreviewController.cs | 2 advisory rules | 9.19 | Suppress |
| publishedsnapshotcache.controller.js | 1 advisory rule | 9.39 | Suppress |
| PublishedSnapshotStatus.cs | 1 advisory rule | 9.66 | Suppress |
| MacroRenderingController.cs | 1 advisory rule | 9.69 | Suppress |
| PublishedSnapshotServiceTestBase.cs | 1 advisory rule | 9.69 | Suppress |
| BackOfficeExternalLoginProviders.cs | 1 advisory rule | 9.69 | Suppress |
| member.delete.controller.js | 1 advisory rule | 9.69 | Suppress |
| ByRouteContentApiController.cs | 1 advisory rule | 9.39 → 9.10 | Suppress |
| NotificationService.cs | 1 advisory rule | 6.73 → 6.58 | Suppress |
| EagerMatcherPolicy.cs | 1 advisory rule | 7.22 → 7.15 | Suppress |
| ContentService.cs | 1 advisory rule | 2.39 → 2.37 | Suppress |
| MemberRepository.cs | 1 advisory rule | 6.49 → 6.72 | Suppress |
View Improvements
| File | Code Health Impact | Categories Improved |
|---|---|---|
| MemberRepository.cs | 6.49 → 6.72 | Low Cohesion, Complex Method, Constructor Over-Injection |
| UmbracoBuilder.CoreServices.cs | 8.83 → 8.93 | Large Method |
| IUserService.cs | 9.69 → 10.00 | Excess Number of Function Arguments |
| UserService.cs | 4.29 → 6.76 | Lines of Code in a Single File, Number of Functions in a Single Module, Code Duplication, Complex Method, Complex Conditional, Bumpy Road Ahead, Excess Number of Function Arguments, Constructor Over-Injection |
| UserRepository.cs | 4.16 → 4.44 | Complex Method, Bumpy Road Ahead, Constructor Over-Injection |
| DomainService.cs | 8.82 → 9.39 | Code Duplication, Primitive Obsession, Constructor Over-Injection |
| IMemberService.cs | 9.10 → 9.69 | Primitive Obsession, String Heavy Function Arguments |
| MemberService.cs | 6.61 → 6.91 | Code Duplication, Bumpy Road Ahead, Excess Number of Function Arguments, Constructor Over-Injection |
| MemberUserStore.cs | 4.71 → 5.04 | Complex Method, Overall Code Complexity, Primitive Obsession |
| AppCacheExtensions.cs | 8.82 → 9.39 | Code Duplication, Excess Number of Function Arguments |
| ApiRichTextElementParser.cs | 9.10 → 9.39 | Constructor Over-Injection |
| MediaService.cs | 7.55 → 7.79 | Code Duplication, Excess Number of Function Arguments, Constructor Over-Injection |
| RichTextPropertyIndexValueFactory.cs | 9.23 → 9.69 | Large Method |
Quality Gate Profile: Clean Code Collective
Want more control? Customize Code Health rules or catch issues early with our IDE extension and CLI tool.
Details
🚩 Declining Code Health (highest to lowest):
- Large Method UmbracoBuilder.BackOfficeAuth.cs: CreatePolicies
- Low Cohesion UserRepository.cs
- Code Duplication PublishedSnapshotService.cs
- Complex Method ContentService.cs: CommitDocumentChangesInternal 🔥
- Complex Conditional edit.controller.js: ContentEditController.scope.save
- Code Duplication RichTextPropertyEditor.cs
- Code Duplication edit.controller.js
- Complex Conditional umbBlockListPropertyEditor.component.js: BlockListController.onLoaded
- Complex Conditional edit.controller.js: ContentEditController.bindEvents
- Complex Method NotificationService.cs: CreateNotificationRequest
- Code Duplication ByRouteContentApiController.cs
- Lines of Code in a Single File ContentStore.cs
- Overall Code Complexity ContentStore.cs
- Overall Code Complexity AuthenticationController.cs
- Code Duplication StaticFilesTreeController.cs
- Deep, Nested Complexity edit.controller.js: ContentEditController.recurseFormControls
- Code Duplication publishedsnapshotcache.controller.js
- Overall Code Complexity umbBlockListPropertyEditor.component.js
- Complex Method BackOfficeController.cs: ExternalSignInAsync
- Complex Method ContentStore.cs: UpdateContentTypesLocked
- Complex Conditional PublishedSnapshotService.cs: GetElements
- Complex Conditional PublishedSnapshotService.cs: RefreshContentTypesLocked
- Complex Conditional PublishedSnapshotService.cs: RefreshMediaTypesLocked
- Complex Method umbBlockListPropertyEditor.component.js: BlockListController.onInit
- Complex Method DataTypeController.cs: DataTypeController
- Complex Method NotificationService.cs: SendNotifications
- Complex Method PreviewController.cs: End
- Complex Conditional ContentStore.cs: Collect
- Complex Method umbBlockListPropertyEditor.component.js: BlockListController.editBlock
- Complex Method PublishedSnapshotStatus.cs: GetStatus
- Complex Method AuthenticationController.cs: PostSetPassword
- Complex Method PublishedSnapshotService.cs: NotifyLocked
- Complex Method ContentStore.cs: AddTreeNodeLocked
- Primitive Obsession MemberRepository.cs
- Missing Arguments Abstractions RichTextPropertyEditor.cs
- Primitive Obsession ContentStore.cs
- Constructor Over-Injection ContentStore.cs: ContentStore
- Primitive Obsession PublishedSnapshotService.cs
- Constructor Over-Injection PublishedSnapshotService.cs: PublishedSnapshotService
- Constructor Over-Injection AuthenticationController.cs: AuthenticationController
- Complex Conditional BackOfficeController.cs: ExternalLogin
- Constructor Over-Injection BackOfficeController.cs: BackOfficeController
- Constructor Over-Injection MacroRenderingController.cs: MacroRenderingController
- Constructor Over-Injection BackOfficeExternalLoginProviders.cs: BackOfficeExternalLoginProviders
- Complex Method StaticFilesTreeController.cs: AddWebRootFiles
- Constructor Over-Injection StaticFilesTreeController.cs: StaticFilesTreeController
- Excess Number of Function Arguments member.delete.controller.js: MemberDeleteController
- Excess Number of Function Arguments umbBlockListPropertyEditor.component.js: BlockListController.editBlock
- Complex Method datepicker.controller.js: dateTimePickerController.onInit
- Complex Conditional datepicker.controller.js: dateTimePickerController.onInit
- Complex Conditional datepicker.controller.js: dateTimePickerController.updateModelValue
- Complex Conditional datepicker.controller.js: dateTimePickerController.setDatePickerVal
- Excess Number of Function Arguments PublishedSnapshotServiceTestBase.cs: InitializedCache
- Complex Method umbBlockListPropertyEditor.component.js: BlockListController.showCreateDialog
- Complex Method umbBlockListPropertyEditor.component.js: BlockListController.onLoaded
- Complex Method EagerMatcherPolicy.cs: ApplyAsync
- Complex Method ContentStore.cs: UpdateDataTypesLocked
- Complex Method PublishedSnapshotService.cs: NotifyLocked
- Complex Method PublishedSnapshotService.cs: EnsureCaches
- Complex Method ContentStore.cs: Collect
- Complex Method ContentStore.cs: SetAllFastSortedLocked
- Complex Method ContentService.cs: Save 🔥
- Complex Method ContentStore.cs: RemoveTreeNodeLocked
- Complex Method DataTypeController.cs: GetReferences
- Complex Method DataTypeController.cs: PostCopy
- Complex Conditional ContentStore.cs: UpdateContentTypesLocked
- Complex Conditional ContentStore.cs: CreateSnapshot
- Complex Conditional ContentStore.cs: Collect
- Complex Method ContentService.cs: AttemptMove 🔥
- Complex Method ContentService.cs: SaveAndPublish 🔥
- Complex Method PublishedSnapshotService.cs: Notify
- Complex Method ContentStore.cs: SetLocked
- Complex Method ContentService.cs: SaveAndPublish 🔥
- Complex Method ContentStore.cs: CreateSnapshot
- Complex Method PublishedSnapshotService.cs: RefreshMediaTypesLocked
- Complex Method PublishedSnapshotService.cs: RefreshContentTypesLocked
- Bumpy Road Ahead ContentStore.cs: AddTreeNodeLocked
- Complex Conditional umbBlockListPropertyEditor.component.js: BlockListController.requestShowCreate
- Complex Conditional umbBlockListPropertyEditor.component.js: BlockListController.userFlowWhenBlockWasCreated
- Complex Method ContentStore.cs: SetAllLocked
- Complex Conditional edit.controller.js: ContentEditController.startWatches
- Complex Conditional edit.controller.js: ContentEditController.init
- Complex Conditional edit.controller.js: ContentEditController.performSave
- Constructor Over-Injection PreviewController.cs: PreviewController
- Bumpy Road Ahead NotificationService.cs: SendNotifications
- Bumpy Road Ahead ContentStore.cs: UpdateContentTypesLocked
- Bumpy Road Ahead ContentStore.cs: UpdateDataTypesLocked
- Bumpy Road Ahead ContentStore.cs: RemoveTreeNodeLocked
- Bumpy Road Ahead PublishedSnapshotService.cs: EnsureCaches
- Bumpy Road Ahead PublishedSnapshotService.cs: NotifyLocked
- Bumpy Road Ahead PublishedSnapshotService.cs: NotifyLocked
- Bumpy Road Ahead AuthenticationController.cs: PostSetPassword
- Bumpy Road Ahead BackOfficeController.cs: ExternalSignInAsync
- Bumpy Road Ahead DataTypeController.cs: GetReferences
- Bumpy Road Ahead PreviewController.cs: Index
- Bumpy Road Ahead StaticFilesTreeController.cs: AddWebRootFiles
- Bumpy Road Ahead edit.controller.js: ContentEditController.resetVariantFlags
- Bumpy Road Ahead edit.controller.js: ContentEditController.recurseFormControls
- Bumpy Road Ahead edit.controller.js: ContentEditController.scope.save
- Bumpy Road Ahead umbBlockListPropertyEditor.component.js: BlockListController.onInit
- Bumpy Road Ahead umbBlockListPropertyEditor.component.js: BlockListController.onLoaded
- Bumpy Road Ahead umbBlockListPropertyEditor.component.js: BlockListController.showCreateDialog
- Constructor Over-Injection PreviewController.cs: PreviewController
- Constructor Over-Injection DataTypeController.cs: DataTypeController
- Bumpy Road Ahead ContentStore.cs: SetValueLocked
- Constructor Over-Injection DataTypeController.cs: DataTypeController
- Constructor Over-Injection DataTypeController.cs: DataTypeController
- Complex Method edit.controller.js: ContentEditController.scope.save
- Complex Method edit.controller.js: ContentEditController.createButtons
- Complex Method edit.controller.js: ContentEditController.bindEvents
- Complex Method edit.controller.js: ContentEditController.init
✅ Improving Code Health:
- Large Assertion Blocks RichTextParserTests.cs
- Low Cohesion MemberRepository.cs
- Code Duplication MediaService.cs
- Code Duplication MemberService.cs
- Code Duplication RichTextParserTests.cs: ParseElement_CanHandleNonLocalLink_WithPostfix
- Code Duplication ContentService.cs 🔥
- Lines of Code in a Single File ContentService.cs 🔥
- Code Duplication UserService.cs
- Overall Code Complexity MemberUserStore.cs
- Duplicated Assertion Blocks RichTextParserTests.cs
- Large Method UmbracoBuilder.CoreServices.cs: AddCoreInitialServices
- Large Method UmbracoBuilder.CoreServices.cs: AddCoreNotifications
- Complex Method UserRepository.cs: PersistUpdatedItem
- Complex Method UserRepository.cs: PersistNewItem
- Complex Conditional ContentService.cs: Move 🔥
- Complex Method UserRepository.cs: PerformGetReferencedDtos
- Complex Method ContentService.cs: Publish 🔥
- Complex Method ContentService.cs: Move 🔥
- Number of Functions in a Single Module ContentService.cs 🔥
- Code Duplication DomainService.cs
- Constructor Over-Injection MediaService.cs: MediaService
- Constructor Over-Injection MemberService.cs: MemberService
- Constructor Over-Injection MemberRepository.cs: MemberRepository
- Constructor Over-Injection UserRepository.cs: UserRepository
- Primitive Obsession RichTextParserTests.cs
- String Heavy Function Arguments RichTextParserTests.cs
- Complex Method MemberUserStore.cs: CreateAsync
- Complex Method ContentService.cs: Copy 🔥
- Complex Method MemberRepository.cs: GetPagedByFilterAsync
- Complex Method MemberRepository.cs: ApplyOrdering
- Bumpy Road Ahead UserRepository.cs: PerformGetReferencedDtos
- Bumpy Road Ahead ContentService.cs: Publish 🔥
- Bumpy Road Ahead ContentService.cs: CreateBlueprintFromContent 🔥
- Constructor Over-Injection ContentService.cs: ContentService 🔥
- Complex Conditional UserService.cs: ChangePasswordAsync
- Constructor Over-Injection MemberRepository.cs: MemberRepository
- Constructor Over-Injection ContentService.cs: ContentService 🔥
- Constructor Over-Injection UserService.cs: UserService
- Constructor Over-Injection ContentService.cs: ContentService 🔥
- Constructor Over-Injection MediaService.cs: MediaService
- Constructor Over-Injection MediaService.cs: MediaService
- Constructor Over-Injection MemberService.cs: MemberService
- Constructor Over-Injection MemberService.cs: MemberService
- Excess Number of Function Arguments AppCacheExtensions.cs: GetCacheItemAsync
- Excess Number of Function Arguments AppCacheExtensions.cs: InsertCacheItemAsync
- Bumpy Road Ahead MemberService.cs: Save
- Bumpy Road Ahead UserService.cs: FilterAsync
- Complex Method UserService.cs: GetOrderByExpression
- Complex Method UserService.cs: UpdateAsync
- Complex Method UserService.cs: FilterAsync
- Complex Method UserService.cs: ChangePasswordAsync
- Complex Method UserService.cs: ValidateUserUpdateModel
- Complex Method UserService.cs: ValidateUserCreateModel
- Complex Method UserService.cs: InviteAsync
- Constructor Over-Injection RichTextPropertyEditor.cs: RichTextPropertyValueEditor
- Excess Number of Function Arguments UserService.cs: MapUserUpdate
- Excess Number of Function Arguments UserService.cs: FilterAsync
- Excess Number of Function Arguments MediaService.cs: AuditAsync
- Excess Number of Function Arguments MemberService.cs: FilterAsync
- Excess Number of Function Arguments MemberService.cs: AuditAsync
- Excess Number of Function Arguments ContentService.cs: PublishBranch_ShouldPublish 🔥
- Excess Number of Function Arguments ContentService.cs: PublishBranchItem 🔥
- Excess Number of Function Arguments ContentService.cs: AuditAsync 🔥
- String Heavy Function Arguments ByRouteContentApiController.cs
- Code Duplication AppCacheExtensions.cs
- Primitive Obsession DomainService.cs
- Constructor Over-Injection DomainService.cs: DomainService
- Primitive Obsession IMemberService.cs
- String Heavy Function Arguments IMemberService.cs
- Excess Number of Function Arguments IUserService.cs: FilterAsync
- Lines of Code in a Single File UserService.cs
- Number of Functions in a Single Module UserService.cs
- Constructor Over-Injection ApiRichTextElementParser.cs: ApiRichTextElementParser
- Primitive Obsession RichTextPropertyEditor.cs
- Large Method RichTextPropertyIndexValueFactory.cs: GetIndexValues
- Primitive Obsession MemberUserStore.cs
Annotations
Check warning on line 39 in src/Umbraco.Web.BackOffice/Trees/StaticFilesTreeController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Code Duplication
The module contains 2 functions with similar structure: StaticFilesTreeController,StaticFilesTreeController. Avoid duplicated, aka copy-pasted, code inside the module. More duplication lowers the code health.
Check warning on line 171 in src/Umbraco.Web.BackOffice/Trees/StaticFilesTreeController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
AddWebRootFiles has a cyclomatic complexity of 11, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 171 in src/Umbraco.Web.BackOffice/Trees/StaticFilesTreeController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Bumpy Road Ahead
AddWebRootFiles has 2 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is 2 blocks per function. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
Check warning on line 39 in src/Umbraco.Web.BackOffice/Trees/StaticFilesTreeController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Constructor Over-Injection
StaticFilesTreeController has 6 arguments, max arguments = 5. This constructor has too many arguments, indicating an object with low cohesion or missing function argument abstraction. Avoid adding more arguments.
Check warning on line 53 in src/Umbraco.Web.BackOffice/Controllers/MacroRenderingController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Constructor Over-Injection
MacroRenderingController has 7 arguments, max arguments = 5. This constructor has too many arguments, indicating an object with low cohesion or missing function argument abstraction. Avoid adding more arguments.
Check warning on line 260 in src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
End has a cyclomatic complexity of 13, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 141 in src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Bumpy Road Ahead
Index has 2 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is 2 blocks per function. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
Check warning on line 73 in src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Constructor Over-Injection
PreviewController has 10 arguments, max arguments = 5. This constructor has too many arguments, indicating an object with low cohesion or missing function argument abstraction. Avoid adding more arguments.
Check warning on line 100 in src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Constructor Over-Injection
PreviewController has 11 arguments, max arguments = 5. This constructor has too many arguments, indicating an object with low cohesion or missing function argument abstraction. Avoid adding more arguments.
Check warning on line 142 in src/Umbraco.Web.Website/Routing/EagerMatcherPolicy.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ Getting worse: Complex Method
ApplyAsync increases in cyclomatic complexity from 24 to 29, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 828 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Code Duplication
The module contains 8 functions with similar structure: LoadContentFromLocalDbLocked,LoadMediaFromLocalDbLocked,LockAndLoadDomains,LockAndLoadMedia and 4 more functions. Avoid duplicated, aka copy-pasted, code inside the module. More duplication lowers the code health.
Check warning on line 1029 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
NotifyLocked has a cyclomatic complexity of 14, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 1106 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
NotifyLocked has a cyclomatic complexity of 12, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 693 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
EnsureCaches has a cyclomatic complexity of 12, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 346 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
Notify has a cyclomatic complexity of 10, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 1296 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
RefreshMediaTypesLocked has a cyclomatic complexity of 9, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 1255 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Method
RefreshContentTypesLocked has a cyclomatic complexity of 9, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Check warning on line 496 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Conditional
GetElements has 1 complex conditionals with 3 branches, threshold = 2. A complex conditional is an expression inside a branch (e.g. if, for, while) which consists of multiple, logical operators such as AND/OR. The more logical operators in an expression, the more severe the code smell.
Check warning on line 1218 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Conditional
RefreshContentTypesLocked has 1 complex conditionals with 3 branches, threshold = 2. A complex conditional is an expression inside a branch (e.g. if, for, while) which consists of multiple, logical operators such as AND/OR. The more logical operators in an expression, the more severe the code smell.
Check warning on line 1259 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Complex Conditional
RefreshMediaTypesLocked has 1 complex conditionals with 3 branches, threshold = 2. A complex conditional is an expression inside a branch (e.g. if, for, while) which consists of multiple, logical operators such as AND/OR. The more logical operators in an expression, the more severe the code smell.
Check warning on line 693 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Bumpy Road Ahead
EnsureCaches has 3 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is 2 blocks per function. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
Check warning on line 1029 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Bumpy Road Ahead
NotifyLocked has 3 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is 2 blocks per function. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
Check warning on line 1106 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Bumpy Road Ahead
NotifyLocked has 3 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is 2 blocks per function. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
Check warning on line 1 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Primitive Obsession
In this module, 30.8% of all function arguments are primitive types, threshold = 30.0%. The functions in this file have too many primitive types (e.g. int, double, float) in their function argument lists. Using many primitive types lead to the code smell Primitive Obsession. Avoid adding more primitive arguments.
Check warning on line 124 in src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
codescene-delta-analysis / CodeScene Code Health Review (main)
❌ New issue: Constructor Over-Injection
PublishedSnapshotService has 19 arguments, max arguments = 5. This constructor has too many arguments, indicating an object with low cohesion or missing function argument abstraction. Avoid adding more arguments.