Пример #1
0
        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));
        }
Пример #2
0
        public Task <IPagedCollection <CustomerDetail> > Handle(GetCustomerListQuery request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return(GetCustomerList(request));
        }