refactor(ReadHistoryQueryHandler): update to use IRepository<EnvelopeHistory>

This commit is contained in:
Developer 02 2025-08-28 17:52:24 +02:00
parent 3616d43f2e
commit b8c348afb6

View File

@ -1,7 +1,9 @@
using AutoMapper;
using EnvelopeGenerator.Application.Interfaces.Repositories;
using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.Core.Exceptions;
using EnvelopeGenerator.Domain.Entities;
using MediatR;
using Microsoft.EntityFrameworkCore;
namespace EnvelopeGenerator.Application.Histories.Queries.Read;
@ -10,20 +12,18 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
/// </summary>
public class ReadHistoryQueryHandler : IRequestHandler<ReadHistoryQuery, IEnumerable<ReadHistoryResponse>>
{
[Obsolete("Use IRepository")]
private readonly IEnvelopeHistoryRepository _repository;
private readonly IRepository<EnvelopeHistory> _repo;
private readonly IMapper _mapper;
/// <summary>
///
/// </summary>
/// <param name="repository"></param>
/// <param name="repo"></param>
/// <param name="mapper"></param>
[Obsolete("Use IRepository")]
public ReadHistoryQueryHandler(IEnvelopeHistoryRepository repository, IMapper mapper)
public ReadHistoryQueryHandler(IRepository<EnvelopeHistory> repo, IMapper mapper)
{
_repository = repository;
_repo = repo;
_mapper = mapper;
}
@ -31,16 +31,20 @@ public class ReadHistoryQueryHandler : IRequestHandler<ReadHistoryQuery, IEnumer
///
/// </summary>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <param name="cancel"></param>
/// <returns></returns>
/// <exception cref="NotFoundException"></exception>
public async Task<IEnumerable<ReadHistoryResponse>> Handle(ReadHistoryQuery request, CancellationToken cancellationToken)
public async Task<IEnumerable<ReadHistoryResponse>> Handle(ReadHistoryQuery request, CancellationToken cancel = default)
{
var hists = await _repository.ReadAsync(request.EnvelopeId, status: request.Status is null ? null : request.Status);
var query = _repo.ReadOnly().Where(h => h.EnvelopeId == request.EnvelopeId);
if (request.Status is not null)
query = query.Where(h => h.Status == request.Status);
if (!hists.Any())
throw new NotFoundException();
var hists = await query.ToListAsync(cancel);
if (hists.Count == 0)
return _mapper.Map<IEnumerable<ReadHistoryResponse>>(hists);
throw new NotFoundException();
}
}