From a7cfb099fa498cdc5c472cd49591db115468947b Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 9 Apr 2026 10:26:44 +0200 Subject: [PATCH] Add query/handler for envelope document retrieval Introduced ReadSingleEnvelopeDocResultQuery and its handler to fetch an envelope's document as a byte array via MediatR. Throws NotFoundException if the document is missing. Includes XML documentation for clarity. --- .../ReadSingleEnvelopeDocResultQuery.cs | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 EnvelopeGenerator.Application/Envelopes/Queries/ReadSingleEnvelopeDocResultQuery.cs diff --git a/EnvelopeGenerator.Application/Envelopes/Queries/ReadSingleEnvelopeDocResultQuery.cs b/EnvelopeGenerator.Application/Envelopes/Queries/ReadSingleEnvelopeDocResultQuery.cs new file mode 100644 index 00000000..73760944 --- /dev/null +++ b/EnvelopeGenerator.Application/Envelopes/Queries/ReadSingleEnvelopeDocResultQuery.cs @@ -0,0 +1,41 @@ +using MediatR; +using EnvelopeGenerator.Application.Common.Query; +using EnvelopeGenerator.Application.Common.Dto; +using DigitalData.Core.Exceptions; + +namespace EnvelopeGenerator.Application.Envelopes.Queries; + +/// +/// Repräsentiert eine Abfrage für Umschläge. +/// +/// +public record ReadSingleEnvelopeDocResultQuery(ReadSingleEnvelopeQuery Envelope) : EnvelopeQueryBase, IRequest; + +/// +/// Verarbeitet und liefert passende -Ergebnisse. +/// +public class ReadSingleEnvelopeDocResultQueryHandler : IRequestHandler +{ + private readonly IMediator _mediator; + + /// + /// + /// + /// + public ReadSingleEnvelopeDocResultQueryHandler(IMediator mediator) + { + _mediator = mediator; + } + + /// + /// + /// + /// + /// + /// + public async Task Handle(ReadSingleEnvelopeDocResultQuery request, CancellationToken cancellationToken) + { + var result = await _mediator.Send(request.Envelope, cancellationToken); + return result.DocResult ?? throw new NotFoundException($"Document for Envelope with ID {request.Envelope.Id} not found"); + } +} \ No newline at end of file