public PagedList <CompanyOrder> GetCompanyOrders(CompanyOrderParametersDto companyOrderParameters) { if (companyOrderParameters == null) { throw new ArgumentNullException(nameof(companyOrderParameters)); } var collection = _context.CompanyOrders .Include(co => co.Vendor) as IQueryable <CompanyOrder>; if (!string.IsNullOrWhiteSpace(companyOrderParameters.ExternalOrderNo)) { var externalOrderNo = companyOrderParameters.ExternalOrderNo.Trim(); collection = collection.Where(a => a.ExternalOrderNo == externalOrderNo); } if (!string.IsNullOrWhiteSpace(companyOrderParameters.QueryString)) { var QueryString = companyOrderParameters.QueryString.Trim(); collection = collection.Where(co => co.ExternalOrderNo.Contains(QueryString) || co.InternalOrderNo.Contains(QueryString) || co.Comments.Contains(QueryString)); } var sieveModel = new SieveModel { Sorts = companyOrderParameters.SortOrder }; collection = _sieveProcessor.Apply(sieveModel, collection); return(PagedList <CompanyOrder> .Create(collection, companyOrderParameters.PageNumber, companyOrderParameters.PageSize)); }
public ActionResult <IEnumerable <CompanyOrderDto> > GetCompanyOrders([FromQuery] CompanyOrderParametersDto companyOrderParameters) { var companyOrdersFromRepo = _companyOrderRepository.GetCompanyOrders(companyOrderParameters); var paginationMetadata = new { totalCount = companyOrdersFromRepo.TotalCount, pageSize = companyOrdersFromRepo.PageSize, currentPage = companyOrdersFromRepo.CurrentPage, totalPages = companyOrdersFromRepo.TotalPages, previousPageLink = companyOrdersFromRepo.HasPrevious, nextPageLink = companyOrdersFromRepo.HasNext }; Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(paginationMetadata)); var companyOrdersDto = _mapper.Map <IEnumerable <CompanyOrderDto> >(companyOrdersFromRepo); return(Ok(companyOrdersDto)); }