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