コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }