2024-02-12 22:01:15 +03:30
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
|
|
namespace NetinaShop.Repository.Handlers.Discounts;
|
2023-12-20 10:37:44 +03:30
|
|
|
|
|
|
|
|
|
|
public class GetDiscountsQueryHandler : IRequestHandler<GetDiscountsQuery, List<DiscountSDto>>
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly IRepositoryWrapper _repositoryWrapper;
|
|
|
|
|
|
|
|
|
|
|
|
public GetDiscountsQueryHandler(IRepositoryWrapper repositoryWrapper)
|
|
|
|
|
|
{
|
|
|
|
|
|
_repositoryWrapper = repositoryWrapper;
|
|
|
|
|
|
}
|
|
|
|
|
|
public async Task<List<DiscountSDto>> Handle(GetDiscountsQuery request, CancellationToken cancellationToken)
|
|
|
|
|
|
{
|
2024-04-15 16:38:58 +03:30
|
|
|
|
var discounts = await _repositoryWrapper.SetRepository<Discount>().TableNoTracking
|
2024-02-04 16:38:23 +03:30
|
|
|
|
.Where(d=>!d.IsSpecialOffer)
|
2023-12-20 10:37:44 +03:30
|
|
|
|
.OrderByDescending(b => b.CreatedAt)
|
2024-02-03 10:34:48 +03:30
|
|
|
|
.Skip(request.Page * 15).Take(15)
|
2023-12-20 10:37:44 +03:30
|
|
|
|
.Select(DiscountMapper.ProjectToSDto)
|
|
|
|
|
|
.ToListAsync(cancellationToken);
|
2024-04-15 16:38:58 +03:30
|
|
|
|
return discounts;
|
2023-12-20 10:37:44 +03:30
|
|
|
|
}
|
|
|
|
|
|
}
|