Introduced DTOs for request and response to handle Swiss QR Code extraction from PDF documents. Implemented `ExtractSwissQrCodeHandler` to process the extraction using `ISwissQrCodeProcessor`. Added validation for the query with `ExtractSwissQrCodeValidator`. Developed unit tests to ensure correct behavior for successful and failure scenarios.
27 lines
1.0 KiB
C#
27 lines
1.0 KiB
C#
using DocumentOperator.Domain.Models.ValueObjects;
|
|
using DocumentOperator.Domain.ValueObjects;
|
|
using MediatR;
|
|
|
|
namespace DocumentOperator.Application.Features.Documents.ExtractSwissQrCode;
|
|
|
|
/// <summary>
|
|
/// Query to extract Swiss QR Code data from a PDF document.
|
|
/// Returns references (passed through) and parsed QR code data.
|
|
/// </summary>
|
|
/// <param name="References">Array of reference strings to pass through in the response</param>
|
|
/// <param name="PdfContent">PDF document content as Base64 string</param>
|
|
public record ExtractSwissQrCodeQuery(
|
|
IReadOnlyList<string> References,
|
|
Base64String PdfContent
|
|
) : IRequest<ExtractSwissQrCodeResult>;
|
|
|
|
/// <summary>
|
|
/// Result containing passed-through references and extracted Swiss QR Code data
|
|
/// </summary>
|
|
/// <param name="References">Reference strings passed through from request</param>
|
|
/// <param name="QrCodeData">Parsed Swiss QR Code data from the last page of the PDF</param>
|
|
public record ExtractSwissQrCodeResult(
|
|
IReadOnlyList<string> References,
|
|
SwissQrCodeData QrCodeData
|
|
);
|