Eliminate O(N*M) linear scans in view assembly. GetTransactionViewList / GetBookingRuleViewList: precompute accountsById and use dictionary lookups instead of accountList.Single per row. GetAccountViewList: group transactions by TargetAccountId/OriginAccountId once; per-account balance is now O(k) instead of a full scan. Fold GetBalanceInAccountCurrency and GetCurrentBalanceInCHF into a single ComputeBalance helper so the account-currency balance is computed once per account instead of twice. Defer item 19 (async I/O): after PR D each XML file is loaded at most once per circuit, and this app is single-user local Blazor Server, so async would be ~40 files of churn for negligible benefit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ChartService.cs | ||
| DummyFxService.cs | ||
| FileService.cs | ||
| Schaad.Accounting.Services.csproj | ||
| SettingsService.cs | ||
| ViewService.cs | ||