Skip to content

Consolidate architecture updates, JS utilities, tests, and agent guidance - #929

Merged
neozhu merged 3 commits into
mainfrom
merge
Apr 24, 2026
Merged

neozhu merged 3 commits into
mainfrom
merge

Update README.md to reflect architectural changes and add AGENT.md fo…

ea67268
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis failed Apr 24, 2026 in 46s

Quality Gate failed

Failed conditions
1 Security Hotspot
0.0% Coverage on New Code (required ≥ 80%)
6.4% Duplication on New Code (required ≤ 3%)
E Security Rating on New Code (required ≥ A)
B Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Annotations

Check warning on line 115 in src/Server.UI/Services/Layout/LayoutService.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Either remove or fill this block of code.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt7UTs--MWcGtkSd&open=AZ29Qt7UTs--MWcGtkSd&pullRequest=929

Check failure on line 255 in src/Server.UI/Pages/Identity/Users/Users.razor

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this unread private field '_dbContextFactory' or refactor the code to use its value.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QuCeTs--MWcGtkT0&open=AZ29QuCeTs--MWcGtkT0&pullRequest=929

Check warning on line 129 in src/Server.UI/wwwroot/js/fancybox.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Handle this exception or don't catch it at all.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt6bTs--MWcGtkSK&open=AZ29Qt6bTs--MWcGtkSK&pullRequest=929

Check failure on line 61 in src/Server.UI/Hubs/IHubConnectionFactory.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Enable server certificate validation on this SSL/TLS connection

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QuGqTs--MWcGtkUI&open=AZ29QuGqTs--MWcGtkUI&pullRequest=929

Check warning on line 44 in src/Server.UI/wwwroot/js/orgchart.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

`new Error()` is too unspecific for a type check. Use `new TypeError()` instead.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt6CTs--MWcGtkR3&open=AZ29Qt6CTs--MWcGtkR3&pullRequest=929

Check warning on line 60 in src/Infrastructure/Extensions/HttpContextExtensions.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

The header 'User-Agent' can be accessed using the UserAgent property

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtuhTs--MWcGtkQ2&open=AZ29QtuhTs--MWcGtkQ2&pullRequest=929

Check warning on line 18 in src/Application/Common/PublishStrategies/ParallelNoWaitPublisher.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer comparing 'Count' to 0 rather than using 'Any()', both for clarity and for performance

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt4vTs--MWcGtkRo&open=AZ29Qt4vTs--MWcGtkRo&pullRequest=929

Check warning on line 6 in src/Server.UI/Components/Inputs/Display/ReadOnlyField.razor

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this useless assignment to local variable 'displayValue'.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt-cTs--MWcGtkTP&open=AZ29Qt-cTs--MWcGtkTP&pullRequest=929

Check warning on line 11 in src/Server.UI/wwwroot/js/downloadFile.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt61Ts--MWcGtkST&open=AZ29Qt61Ts--MWcGtkST&pullRequest=929

Check warning on line 24 in src/Application/Pipeline/CacheInvalidationBehaviour.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Evaluation of this argument may be expensive and unnecessary if logging is disabled

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt4-Ts--MWcGtkRp&open=AZ29Qt4-Ts--MWcGtkRp&pullRequest=929

Check warning on line 310 in src/Server.UI/Components/Theming/PrimaryColorPicker.razor

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

"StartsWith" overloads that take a "char" should be used

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt9BTs--MWcGtkTH&open=AZ29Qt9BTs--MWcGtkTH&pullRequest=929

Check warning on line 120 in src/Server.UI/Services/Layout/LayoutService.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove the unused event 'MajorUpdateOccurred' or invoke it.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt7TTs--MWcGtkSa&open=AZ29Qt7TTs--MWcGtkSa&pullRequest=929

Check warning on line 24 in src/Server.UI/Services/UserPreferences/UserPreference.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define a constant instead of using this literal '#fafafa' 5 times.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt75Ts--MWcGtkSj&open=AZ29Qt75Ts--MWcGtkSj&pullRequest=929

Check warning on line 90 in src/Infrastructure/Services/Identity/AuditSignInManager.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Remove this useless assignment to local variable 'userName'.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtsGTs--MWcGtkQP&open=AZ29QtsGTs--MWcGtkQP&pullRequest=929

Check warning on line 12 in src/Application/Common/Constants/AppStrings.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Initialize all 'static fields' inline and remove the 'static constructor'.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt2KTs--MWcGtkRL&open=AZ29Qt2KTs--MWcGtkRL&pullRequest=929

Check warning on line 23 in src/Application/Common/Extensions/DescriptionAttributeExtensions.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Possible null reference return.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt3HTs--MWcGtkRR&open=AZ29Qt3HTs--MWcGtkRR&pullRequest=929

Check warning on line 9 in src/Application/Common/ExceptionHandlers/DbExceptionHandler.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Reduce the number of generic parameters in the 'DbExceptionHandler' class to no more than the 2 authorized.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt4TTs--MWcGtkRd&open=AZ29Qt4TTs--MWcGtkRd&pullRequest=929

Check warning on line 46 in src/Infrastructure/Services/Identity/AuditSignInManager.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Define a constant instead of using this literal 'Unknown' 11 times.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtsGTs--MWcGtkQD&open=AZ29QtsGTs--MWcGtkQD&pullRequest=929

Check warning on line 11 in src/Server.UI/Resources/EmailTemplates/_useractivation.cshtml

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use <img> instead of the presentation role to ensure accessibility across all devices.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt8hTs--MWcGtkS7&open=AZ29Qt8hTs--MWcGtkS7&pullRequest=929

Check warning on line 72 in src/Infrastructure/Services/InMemoryTicketStore.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtuFTs--MWcGtkQz&open=AZ29QtuFTs--MWcGtkQz&pullRequest=929

Check warning on line 47 in src/Application/Features/Documents/Commands/AddEdit/AddEditDocumentCommand.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Forward the 'cancellationToken' parameter to the 'FindAsync' method or pass in 'CancellationToken.None' explicitly to indicate intentionally not propagating the token

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt0HTs--MWcGtkRF&open=AZ29Qt0HTs--MWcGtkRF&pullRequest=929

Check warning on line 52 in src/Server.UI/wwwroot/js/orgchart.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer `globalThis` over `window`.

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29Qt6CTs--MWcGtkR7&open=AZ29Qt6CTs--MWcGtkR7&pullRequest=929

Check warning on line 98 in src/Infrastructure/Services/MailService.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Change return type of method 'ConvertToScribanModel' from 'object' to 'System.Collections.Generic.Dictionary<string, object?>' for improved performance

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtrxTs--MWcGtkP9&open=AZ29QtrxTs--MWcGtkP9&pullRequest=929

Check warning on line 507 in src/Migrators/Migrators.MSSQL/Migrations/20260423233248_InitialCreate.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer 'static readonly' fields over constant array arguments if the called method is called repeatedly and is not mutating the passed array

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QuIETs--MWcGtkUN&open=AZ29QuIETs--MWcGtkUN&pullRequest=929

Check warning on line 18 in tests/Application.IntegrationTests/Picklist/Commands/DeletePicklistTests.cs

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer 'static readonly' fields over constant array arguments if the called method is called repeatedly and is not mutating the passed array

See more on https://sonarcloud.io/project/issues?id=neozhu_CleanArchitectureWithBlazorServer&issues=AZ29QtqqTs--MWcGtkPz&open=AZ29QtqqTs--MWcGtkPz&pullRequest=929