diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs
index 6a1145de..e245608d 100644
--- a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs
+++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs
@@ -1,9 +1,14 @@
-using EnvelopeGenerator.Application.Dto.EnvelopeReceiver;
+using AutoMapper;
+using DigitalData.Core.Abstraction.Application.Repository;
+using DigitalData.Core.Exceptions;
+using EnvelopeGenerator.Application.Dto.EnvelopeReceiver;
using EnvelopeGenerator.Application.Envelopes.Queries;
using EnvelopeGenerator.Application.Extensions;
+using EnvelopeGenerator.Application.Model;
using EnvelopeGenerator.Application.Receivers.Queries;
using MediatR;
-using EnvelopeGenerator.Application.Model;
+using EnvelopeGenerator.Domain.Entities;
+using Microsoft.EntityFrameworkCore;
namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
@@ -61,4 +66,61 @@ public static class Extensions
var q = new ReadEnvelopeReceiverQuery() { Key = key };
return mediator.Send(q, cancel).Then(envRcvs => envRcvs.FirstOrDefault());
}
+}
+
+///
+///
+///
+public class ReadEnvelopeReceiverQueryHandler : IRequestHandler>
+{
+ private readonly IRepository _repo;
+
+ private readonly IMapper _mapper;
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public ReadEnvelopeReceiverQueryHandler(IRepository envelopeReceiver, IMapper mapper)
+ {
+ _repo = envelopeReceiver;
+ _mapper = mapper;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> Handle(ReadEnvelopeReceiverQuery request, CancellationToken cancel)
+ {
+ var q = _repo.Read().Where(request, notnull: false);
+
+ if (request.Envelope.Status is not null)
+ {
+ var status = request.Envelope.Status;
+ if (status.Min is not null)
+ q = q.Where(er => er.Envelope!.Status >= status.Min);
+
+ if (status.Max is not null)
+ q = q.Where(er => er.Envelope!.Status <= status.Max);
+
+ if (status.Include?.Length > 0)
+ q = q.Where(er => status.Include.Contains(er.Envelope!.Status));
+
+ if (status.Ignore is not null)
+ q = q.Where(er => !status.Ignore.Contains(er.Envelope!.Status));
+ }
+
+ var envRcvs = await q.Include(er => er.Envelope).ThenInclude(e => e!.Documents).ThenInclude(d => d.Elements)
+ .Include(er => er.Envelope).ThenInclude(e => e!.History)
+ .Include(er => er.Envelope).ThenInclude(e => e!.User)
+ .Include(er => er.Receiver)
+ .ToListAsync(cancel);
+
+ return _mapper.Map>(envRcvs);
+ }
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQueryHandler.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQueryHandler.cs
deleted file mode 100644
index 3689baa9..00000000
--- a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQueryHandler.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using AutoMapper;
-using DigitalData.Core.Abstraction.Application.Repository;
-using EnvelopeGenerator.Application.Dto.EnvelopeReceiver;
-using EnvelopeGenerator.Domain.Entities;
-using MediatR;
-using Microsoft.EntityFrameworkCore;
-
-namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
-
-///
-///
-///
-public class ReadEnvelopeReceiverQueryHandler : IRequestHandler>
-{
- private readonly IRepository _repo;
-
- private readonly IMapper _mapper;
-
- ///
- ///
- ///
- ///
- ///
- public ReadEnvelopeReceiverQueryHandler(IRepository envelopeReceiver, IMapper mapper)
- {
- _repo = envelopeReceiver;
- _mapper = mapper;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public async Task> Handle(ReadEnvelopeReceiverQuery request, CancellationToken cancel)
- {
- var q = _repo.Read();
-
- if(request.Envelope is not null)
- {
- var env = request.Envelope;
- if (env.Id is not null)
- q = q.Where(er => er.EnvelopeId == env.Id);
-
- if (env.Status is not null)
- {
- if(env.Status.Min is not null)
- q = q.Where(er => er.Envelope.Status >= env.Status.Min);
-
- if(env.Status.Max is not null)
- q = q.Where(er => er.Envelope.Status <= env.Status.Max);
-
- if(env.Status .Include?.Length > 0)
- q = q.Where(er => env.Status.Include.Contains(er.Envelope.Status));
-
- if(env.Status.Ignore is not null)
- q = q.Where(er => !env.Status.Ignore.Contains(er.Envelope.Status));
- }
-
- if (env.Uuid is not null)
- q = q.Where(er => er.Envelope.Uuid == env.Uuid);
- }
-
- if (request.Receiver is not null)
- {
- var rcv = request.Receiver;
- if (rcv.Id is not null)
- q = q.Where(r => r.ReceiverId == rcv.Id);
-
- if (rcv.EmailAddress is not null)
- q = q.Where(r => r.Receiver.EmailAddress == rcv.EmailAddress);
-
- if (rcv.Signature is not null)
- q = q.Where(er => er.Receiver.Signature == rcv.Signature);
- }
-
- var envRcvs = await q.Include(er => er.Envelope).ThenInclude(e => e.Documents).ThenInclude(d => d.Elements)
- .Include(er => er.Envelope).ThenInclude(e => e.History)
- .Include(er => er.Envelope).ThenInclude(e => e.User)
- .Include(er => er.Receiver)
- .ToListAsync(cancel);
-
- return _mapper.Map>(envRcvs);
- }
-}