private async Task <IPagedCollection <CustomerDetail> > GetCustomerList(GetCustomerListQuery request) { var expression = _filterBuilder .WhereAddressEquals(request.Address) .WhereCityEquals(request.City) .WhereCompanyEquals(request.Company) .WhereCountryEquals(request.Country) .WhereEmailEquals(request.Email) .WhereFaxEquals(request.Fax) .WhereFirstNameEquals(request.FirstName) .WhereLastNameEquals(request.LastName) .WherePhoneEquals(request.Phone) .WherePostalCodeEquals(request.PostalCode) .WhereStateEquals(request.State) .Filter; var customersFromDb = await _context .Customers .TagWithQueryName(nameof(GetCustomerList)) .Where(expression) .Include(e => e.SupportRepresentative) .OrderBy(request.Order, _orderBuilder) .ToPagedCollectionAsync(request.PageNumber, request.PageSize); var customers = _mapper.Map <IReadOnlyList <CustomerDetail> >(customersFromDb); return(new PagedCollection <CustomerDetail>( customers, customersFromDb.ItemCount, customersFromDb.CurrentPageNumber, customersFromDb.PageSize)); }
public Task <IPagedCollection <CustomerDetail> > Handle(GetCustomerListQuery request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } return(GetCustomerList(request)); }