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.
25 lines
996 B
C#
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);
|
|
}
|