|
|
|
|
@@ -0,0 +1,60 @@
|
|
|
|
|
using AutoMapper;
|
|
|
|
|
using DigitalData.Core.Abstraction.Application.Repository;
|
|
|
|
|
using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiver;
|
|
|
|
|
using EnvelopeGenerator.Application.Common.Extensions;
|
|
|
|
|
using EnvelopeGenerator.Application.Common.Query;
|
|
|
|
|
using EnvelopeGenerator.Application.Envelopes.Queries;
|
|
|
|
|
using EnvelopeGenerator.Application.Receivers.Queries;
|
|
|
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
|
|
|
using MediatR;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Leichte Variante von <see cref="ReadEnvelopeReceiverQuery"/>:
|
|
|
|
|
/// Lädt NUR Envelope (mit Histories + User) und Receiver.
|
|
|
|
|
/// Lädt NICHT Documents/Elements.
|
|
|
|
|
///
|
|
|
|
|
/// Verwendung: Status-Prüfungen wo keine Dokument-Daten benötigt werden
|
|
|
|
|
/// (z.B. ReceiverAuthController.GetStatus).
|
|
|
|
|
/// </summary>
|
|
|
|
|
public record ReadEnvelopeReceiverLightQuery
|
|
|
|
|
: EnvelopeReceiverQueryBase<ReadEnvelopeQuery, ReadReceiverQuery>, IRequest<EnvelopeReceiverDto?>;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Handler für <see cref="ReadEnvelopeReceiverLightQuery"/>.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class ReadEnvelopeReceiverLightQueryHandler
|
|
|
|
|
: IRequestHandler<ReadEnvelopeReceiverLightQuery, EnvelopeReceiverDto?>
|
|
|
|
|
{
|
|
|
|
|
private readonly IRepository<EnvelopeReceiver> _repo;
|
|
|
|
|
private readonly IMapper _mapper;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Konstruktor.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="repo">EnvelopeReceiver-Repository</param>
|
|
|
|
|
/// <param name="mapper">AutoMapper</param>
|
|
|
|
|
public ReadEnvelopeReceiverLightQueryHandler(IRepository<EnvelopeReceiver> repo, IMapper mapper)
|
|
|
|
|
{
|
|
|
|
|
_repo = repo;
|
|
|
|
|
_mapper = mapper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Lädt einen EnvelopeReceiver ohne Documents/Elements.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public async Task<EnvelopeReceiverDto?> Handle(ReadEnvelopeReceiverLightQuery request, CancellationToken cancel)
|
|
|
|
|
{
|
|
|
|
|
var envRcv = await _repo.Query
|
|
|
|
|
.Where(request, notnull: false)
|
|
|
|
|
.AsNoTracking()
|
|
|
|
|
.Include(er => er.Envelope).ThenInclude(e => e!.Histories)
|
|
|
|
|
.Include(er => er.Envelope).ThenInclude(e => e!.User)
|
|
|
|
|
.Include(er => er.Receiver)
|
|
|
|
|
.FirstOrDefaultAsync(cancel);
|
|
|
|
|
|
|
|
|
|
return envRcv is null ? null : _mapper.Map<EnvelopeReceiverDto>(envRcv);
|
|
|
|
|
}
|
|
|
|
|
}
|