Add IPdfProcessor interface and update ROADMAP.md
The `IPdfProcessor` interface was added to the `Application/Common/Interfaces/` directory. It includes the `ValidateAsync` method for validating PDFs and extracting metadata, with proper XML documentation and dependency on domain value objects. Updated `ROADMAP.md` to mark Step 3.1 as completed, detailing the creation of the `IPdfProcessor` interface and its implementation status. Removed the `<Folder Include="Common\Interfaces\" />` entry from `DocumentOperator.Application.csproj` to reflect the transition from a placeholder folder structure to actual implementation.
This commit is contained in:
@@ -851,18 +851,21 @@ DocumentOperator.Tests/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### ?? Step 3.1: IPdfProcessor Interface erstellen - **NEXT**
|
#### ? Step 3.1: IPdfProcessor Interface erstellen - **COMPLETED**
|
||||||
|
|
||||||
**Aufgabe:** Abstraction für PDF-Operationen
|
**Aufgabe:** Abstraction für PDF-Operationen
|
||||||
|
|
||||||
**Was du erstellen wirst:**
|
**Was du erstellt hast:**
|
||||||
- **Wo:** `Application/Common/Interfaces/IPdfProcessor.cs`
|
- **Wo:** `Application/Common/Interfaces/IPdfProcessor.cs` ?
|
||||||
- **Inhalt:**
|
- **Inhalt:**
|
||||||
```csharp
|
```csharp
|
||||||
|
using DocumentOperator.Domain.Models.ValueObjects;
|
||||||
|
|
||||||
|
namespace DocumentOperator.Application.Common.Interfaces;
|
||||||
|
|
||||||
public interface IPdfProcessor
|
public interface IPdfProcessor
|
||||||
{
|
{
|
||||||
Task<PdfMetadata> ValidateAsync(byte[] pdfBytes);
|
Task<PdfMetadata> ValidateAsync(byte[] pdfBytes);
|
||||||
// Weitere Methoden später (YAGNI!)
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -871,9 +874,15 @@ DocumentOperator.Tests/
|
|||||||
- Infrastructure implementiert
|
- Infrastructure implementiert
|
||||||
- TDD: Test ? Interface ? Implementation
|
- TDD: Test ? Interface ? Implementation
|
||||||
|
|
||||||
|
**Status:** ? **COMPLETED** (17.01.2025)
|
||||||
|
- ? Interface erstellt mit XML Comments
|
||||||
|
- ? Using Statement korrekt
|
||||||
|
- ? Namespace korrekt
|
||||||
|
- ? Build erfolgreich
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### ? Step 3.2: DevExpressPdfProcessor implementieren (mit TDD!)
|
#### ?? Step 3.2: DevExpressPdfProcessor implementieren (mit TDD!) - **NEXT**
|
||||||
|
|
||||||
**Aufgabe:** DevExpress Integration
|
**Aufgabe:** DevExpress Integration
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using DocumentOperator.Domain.Models.ValueObjects;
|
||||||
|
|
||||||
|
namespace DocumentOperator.Application.Common.Interfaces;
|
||||||
|
|
||||||
|
public interface IPdfProcessor
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Validates a PDF and extracts metadata.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pdfBytes">PDF content as byte array</param>
|
||||||
|
/// <returns>PDF metadata (page count, size, version, attachments)</returns>
|
||||||
|
/// <exception cref="Domain.Common.Exceptions.PdfProcessingException">
|
||||||
|
/// Thrown when PDF is corrupted or cannot be processed
|
||||||
|
/// </exception>
|
||||||
|
Task<PdfMetadata> ValidateAsync(byte[] pdfBytes);
|
||||||
|
}
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Common\Interfaces\" />
|
|
||||||
<Folder Include="Common\Behaviors\" />
|
<Folder Include="Common\Behaviors\" />
|
||||||
<Folder Include="Common\DTOs\" />
|
<Folder Include="Common\DTOs\" />
|
||||||
<Folder Include="Common\Mappings\" />
|
<Folder Include="Common\Mappings\" />
|
||||||
|
|||||||
Reference in New Issue
Block a user