Files
DocumentService/DocumentOperator.Application/Common/Interfaces/ISwissQrCodeProcessor.cs
OlgunR 47cba50d0f Add ExtractSwissQrCode feature and update feature order
Updated PHASENPLAN.md and ROADMAP.md to reflect the new
feature order, making "ExtractSwissQrCode" Feature 2 and
renumbering previous Features 2-5 to 3-6. Added detailed
steps, endpoints, and acceptance criteria for the new
feature.

Implemented `ISwissQrCodeProcessor` interface with
`DevExpressSwissQrCodeProcessor` for extracting and parsing
Swiss QR Codes using DevExpress and Codecrete libraries.
Registered the new service in DependencyInjection.cs.

Introduced `SwissQrCodeData` value object and
`SwissQrCodeNotFoundException` for domain modeling and
error handling. Updated project dependencies to include
libraries for QR code processing.

Adjusted existing feature descriptions and steps to align
with the new feature order.
2026-06-26 08:39:44 +02:00

25 lines
996 B
C#

using DocumentOperator.Domain.ValueObjects;
namespace DocumentOperator.Application.Common.Interfaces;
/// <summary>
/// Interface for Swiss QR Code processing operations.
/// Extracts and parses Swiss QR Codes from PDF documents.
/// </summary>
public interface ISwissQrCodeProcessor
{
/// <summary>
/// Extracts and parses Swiss QR Code from the last page of a PDF document.
/// </summary>
/// <param name="pdfBytes">PDF document as byte array</param>
/// <param name="cancellationToken">Cancellation token</param>
/// <returns>Parsed Swiss QR Code data</returns>
/// <exception cref="Domain.Exceptions.SwissQrCodeNotFoundException">
/// Thrown when no Swiss QR Code is found on the last page
/// </exception>
/// <exception cref="Domain.Exceptions.PdfProcessingException">
/// Thrown when PDF processing fails
/// </exception>
Task<SwissQrCodeData> ExtractSwissQrCodeAsync(byte[] pdfBytes, CancellationToken cancellationToken = default);
}