Add domain exceptions and update project structure

Implemented a structured exception-handling mechanism in the
domain layer with the addition of `DomainException`,
`DomainValidationException`, `NotFoundException`, and
`PdfProcessingException` classes. These exceptions provide
specific error handling for domain logic and integrate with
centralized middleware.

Updated `ROADMAP.md` to mark Step 2.1 (Domain Exceptions) as
completed and Step 2.2 (Value Objects) as the next task.
Added timeline entries to reflect progress.

Cleaned up `DocumentOperator.Domain.csproj` by removing
unused folder inclusions, indicating a project structure
reorganization.
This commit is contained in:
OlgunR
2026-06-16 16:38:19 +02:00
parent 5d3ec27128
commit d7c416256c
6 changed files with 123 additions and 10 deletions

View File

@@ -722,15 +722,15 @@ DocumentOperator.Domain/
---
#### 🔄 Step 2.1: Domain Exceptions erstellen - **NEXT**
#### Step 2.1: Domain Exceptions erstellen - **COMPLETED**
**Aufgabe:** Custom Exception-Klassen für fachliche Fehler
**Zu erstellen:**
1. [ ] `DomainException.cs` (Basis-Exception)
2. [ ] `DomainValidationException.cs` (Value Object Validierung)
3. [ ] `NotFoundException.cs` (Resource nicht gefunden)
4. [ ] `PdfProcessingException.cs` (PDF-spezifische Fehler)
**Erstellt:**
1. [x] `DomainException.cs` (Basis-Exception)
2. [x] `DomainValidationException.cs` (Value Object Validierung)
3. [x] `NotFoundException.cs` (Resource nicht gefunden)
4. [x] `PdfProcessingException.cs` (PDF-spezifische Fehler)
**Wo:** `Domain/Common/Exceptions/`
@@ -755,7 +755,7 @@ if (notFound)
---
#### Step 2.2: Value Objects erstellen
#### 🔄 Step 2.2: Value Objects erstellen - **NEXT**
**Aufgabe:** Typsichere, selbst-validierende Wert-Objekte
@@ -1566,7 +1566,8 @@ Request mit X-API-Key → Middleware
### 🔄 In Progress
- **Phase 2:** Domain Layer
- **NEXT:** Step 2.1 - Domain Exceptions erstellen
- Step 2.1 - Domain Exceptions
- **NEXT:** Step 2.2 - Value Objects
### ⏳ Pending
- Phase 3-9
@@ -1629,7 +1630,8 @@ Request mit X-API-Key → Middleware
| 2024-XX-XX | Phase 1 | Configuration, Serilog, Options Pattern |
| 2024-XX-XX | Phase 1 | **Decision:** Exception-based statt Ardalis.Result |
| 2024-XX-XX | Phase 1 | ✅ Phase 1 completed |
| 2024-XX-XX | Phase 2 | 🔄 Starting Domain Layer - Exceptions |
| 2024-XX-XX | Phase 2 | Step 2.1 completed - Domain Exceptions created |
| 2024-XX-XX | Phase 2 | 🔄 Starting Step 2.2 - Value Objects |
---