Api/Netina.Repository/Handlers/Accounting/GetPaymentsQueryHandler.cs

26 lines
923 B
C#

using Microsoft.EntityFrameworkCore;
using Netina.Domain.CommandQueries.Queries;
using Netina.Domain.Dtos.SmallDtos;
using Netina.Domain.Entities.Accounting;
using Netina.Repository.Repositories.Base.Contracts;
namespace Netina.Repository.Handlers.Accounting;
public class GetPaymentsQueryHandler : IRequestHandler<GetPaymentsQuery,List<PaymentSDto>>
{
private readonly IRepositoryWrapper _repositoryWrapper;
public GetPaymentsQueryHandler(IRepositoryWrapper repositoryWrapper)
{
_repositoryWrapper = repositoryWrapper;
}
public async Task<List<PaymentSDto>> Handle(GetPaymentsQuery request, CancellationToken cancellationToken)
{
return await _repositoryWrapper.SetRepository<Payment>()
.TableNoTracking
.Skip(20 * request.Page)
.Take(20)
.Select(PaymentMapper.ProjectToSDto)
.ToListAsync(cancellationToken);
}
}