From fd157c4443d855a9a317bcc40205a900187a4e0d Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 10 Sep 2025 14:04:48 +0200 Subject: [PATCH] refactor(ReadEnvelopeReceiverQuery): add receiver filter to signatures --- .../Common/Query/ReceiverQueryBase.cs | 10 ++++++++++ .../Queries/ReadEnvelopeReceiverQuery.cs | 13 ++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/EnvelopeGenerator.Application/Common/Query/ReceiverQueryBase.cs b/EnvelopeGenerator.Application/Common/Query/ReceiverQueryBase.cs index c998891d..589598a3 100644 --- a/EnvelopeGenerator.Application/Common/Query/ReceiverQueryBase.cs +++ b/EnvelopeGenerator.Application/Common/Query/ReceiverQueryBase.cs @@ -20,4 +20,14 @@ public record ReceiverQueryBase /// Eindeutige Signatur des Empfängers /// public virtual string? Signature { get; set; } + + /// + /// Checks whether any of the specified query criteria have a value. + /// + /// + /// This property returns true if at least one of the fields + /// , , or is not null. + /// Usage example: The query can be executed only if at least one criterion is specified. + /// + public bool HasAnyCriteria => Id is not null || EmailAddress is not null || Signature is not null; } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs index 6f8b63da..efba8719 100644 --- a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs +++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs @@ -91,6 +91,8 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler _repo; + private readonly IRepository _rcvRepo; + private readonly IMapper _mapper; /// @@ -98,10 +100,11 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler /// /// - public ReadEnvelopeReceiverQueryHandler(IRepository envelopeReceiver, IMapper mapper) + public ReadEnvelopeReceiverQueryHandler(IRepository envelopeReceiver, IRepository rcvRepo, IMapper mapper) { _repo = envelopeReceiver; _mapper = mapper; + _rcvRepo = rcvRepo; } /// @@ -138,6 +141,14 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler er.Receiver) .ToListAsync(cancel); + if (request.Receiver.HasAnyCriteria && envRcvs.Any()) + { + var receiver = await _rcvRepo.ReadOnly().Where(request.Receiver).FirstAsync(cancel); + + foreach (var envRcv in envRcvs) + envRcv.Envelope?.Documents?.First().Elements.RemoveAll(s => s.ReceiverId != receiver.Id); + } + return _mapper.Map>(envRcvs); } } \ No newline at end of file