Skip to content

Fixed, added cache buster to Block List Editor stylesheets

23a29f2
Select commit
Loading
Failed to load commit list.
Merged

Backoffice Caching: Added cache buster for block list stylesheets (closes #20683) #20686

Fixed, added cache buster to Block List Editor stylesheets
23a29f2
Select commit
Loading
Failed to load commit list.
CodeScene Delta Analysis / CodeScene Code Health Review (main) failed Oct 30, 2025 in 1m 45s

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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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

See this annotation in the file changed.

@codescene-delta-analysis 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.