using AutobusApi.Application.Common.Interfaces; using AutobusApi.Application.Common.Mappings; using AutobusApi.Application.Common.Models; using AutoMapper; using AutoMapper.QueryableExtensions; using MediatR; namespace AutobusApi.Application.VehicleEnrollments.Queries.GetVehicleEnrollmentsWithPagination; public class GetVehicleEnrollmentsWithPaginationQueryHandler : IRequestHandler> { private readonly IApplicationDbContext _dbContext; private readonly IMapper _mapper; public GetVehicleEnrollmentsWithPaginationQueryHandler( IApplicationDbContext dbContext, IMapper mapper) { _dbContext = dbContext; _mapper = mapper; } public async Task> Handle( GetVehicleEnrollmentsWithPaginationQuery request, CancellationToken cancellationToken) { return await _dbContext.VehicleEnrollments .ProjectTo(_mapper.ConfigurationProvider) .ApplySort(request.Sort) .PaginatedListAsync(request.PageNumber, request.PageSize); } }