From 3677b5cd6ebe8087461d0babd32b21e0e5de6c72 Mon Sep 17 00:00:00 2001 From: Claudio Schaad Date: Thu, 2 Jul 2026 21:44:03 +0200 Subject: [PATCH] PR I: move service interfaces out of Common IViewService, IFileService, and IChartService move from Schaad.Accounting.Common/Interfaces/ to Schaad.Accounting.Services/Interfaces/. Namespaces are unchanged, so no consumer needs a using update. Common's vendor can be dropped, matching Common's documented role as the shared models/DTOs/interfaces layer. Co-Authored-By: Claude Opus 4.7 --- IMPROVEMENT_PLAN.md | 1 + Schaad.Accounting.Common/Schaad.Accounting.Common.csproj | 5 ----- .../Interfaces/IChartService.cs | 0 .../Interfaces/IFileService.cs | 0 .../Interfaces/IViewService.cs | 0 5 files changed, 1 insertion(+), 5 deletions(-) rename {Schaad.Accounting.Common => Schaad.Accounting.Services}/Interfaces/IChartService.cs (100%) rename {Schaad.Accounting.Common => Schaad.Accounting.Services}/Interfaces/IFileService.cs (100%) rename {Schaad.Accounting.Common => Schaad.Accounting.Services}/Interfaces/IViewService.cs (100%) diff --git a/IMPROVEMENT_PLAN.md b/IMPROVEMENT_PLAN.md index d0769cf..1bfa83c 100644 --- a/IMPROVEMENT_PLAN.md +++ b/IMPROVEMENT_PLAN.md @@ -104,3 +104,4 @@ Analysis and phased plan produced 2026-07-02. See conversation history for full - **Item 19 (async I/O)** — deferred. After PR D, each XML file is loaded at most once per SignalR circuit, and this app is single-user local Blazor Server. Converting every repository/service method to async would touch ~40 files for negligible user-visible benefit and real regression risk. Revisit if the app is ever hosted for multiple concurrent users. - **PR G** — Phase 4 items 23 + 24: `Schaad.Accounting.Tests` xUnit + NSubstitute + Shouldly project. Adopts the `xxxTestShould.DoThisWhenThat` naming convention with Shouldly assertions (no xUnit `Assert.*`). Covers `ViewService`, `TransactionRepository`, `Formatting`, `RepositoryCache`, `AccountRepository`, `ChartService`, and `FileService.GetTransactionListCsv` — 38 tests locking in the earlier PRs' behavior. Note: originally shipped as three separate commits (initial project, expanded coverage, Shouldly + naming conversion) and later squashed into one commit at the user's request. - **PR H** — Phase 2 item 18 (first slice): add `ILogger` to `FileService.ImportAccountStatementFile` so bank-statement imports emit `Information` for the file being processed and each account's import count, `Warning` when an account is skipped because it belongs to a different mandator, and `Error` when the vendor parser reports a failure. Rest of the logging (BaseRepository save failures, MatchOpenBankTransactions summary) tracked as a follow-up because it requires threading loggers through all seven repositories. +- **PR I** — Phase 2 item 12: move the service interfaces (`IViewService`, `IFileService`, `IChartService`) from `Schaad.Accounting.Common` into `Schaad.Accounting.Services/Interfaces/`. Namespaces are unchanged (`Schaad.Accounting.Interfaces`), so no consumer needs a `using` update. Drops the `Schaad.Finance.Api` `` from `Common.csproj` — Common is now vendor-free and matches its documented role as the "shared models, DTOs, interfaces" layer. diff --git a/Schaad.Accounting.Common/Schaad.Accounting.Common.csproj b/Schaad.Accounting.Common/Schaad.Accounting.Common.csproj index 20fe4e1..785533a 100644 --- a/Schaad.Accounting.Common/Schaad.Accounting.Common.csproj +++ b/Schaad.Accounting.Common/Schaad.Accounting.Common.csproj @@ -4,9 +4,4 @@ net9.0 Schaad.Accounting - - - ..\dlls\Schaad.Finance.Api.dll - - \ No newline at end of file diff --git a/Schaad.Accounting.Common/Interfaces/IChartService.cs b/Schaad.Accounting.Services/Interfaces/IChartService.cs similarity index 100% rename from Schaad.Accounting.Common/Interfaces/IChartService.cs rename to Schaad.Accounting.Services/Interfaces/IChartService.cs diff --git a/Schaad.Accounting.Common/Interfaces/IFileService.cs b/Schaad.Accounting.Services/Interfaces/IFileService.cs similarity index 100% rename from Schaad.Accounting.Common/Interfaces/IFileService.cs rename to Schaad.Accounting.Services/Interfaces/IFileService.cs diff --git a/Schaad.Accounting.Common/Interfaces/IViewService.cs b/Schaad.Accounting.Services/Interfaces/IViewService.cs similarity index 100% rename from Schaad.Accounting.Common/Interfaces/IViewService.cs rename to Schaad.Accounting.Services/Interfaces/IViewService.cs