Пример #1
0
        private string CreateUrl(PagedType pagedType, SlOrderParams slOrderParams)
        {
            string url = string.Empty;

            switch (pagedType)
            {
            case PagedType.Previous:
                url = Url.Link(nameof(GetOrders), new
                {
                    PageSize     = slOrderParams.PageSize,
                    PageNum      = slOrderParams.PageNum - 1,
                    CustomerName = slOrderParams.CustomerName
                });
                break;

            case PagedType.Next:
                url = Url.Link(nameof(GetOrders), new
                {
                    PageSize     = slOrderParams.PageSize,
                    PageNum      = slOrderParams.PageNum + 1,
                    CustomerName = slOrderParams.CustomerName
                });
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(pagedType), pagedType, null);
            }
            return(url);
        }
Пример #2
0
        public async Task <PagedList <SlOrder> > GetOrderPaged(SlOrderParams slOrderParams)
        {
            IQueryable <SlOrder> itemsOrders = _slorderrepository.GetEntitys();

            if (!string.IsNullOrWhiteSpace(slOrderParams.CustomerName))
            {
                itemsOrders = itemsOrders.Where(o => o.Customer.Name.Contains(slOrderParams.CustomerName));
            }
            if (slOrderParams.Status >= 0)
            {
                itemsOrders = itemsOrders.Where(a => a.Status == slOrderParams.Status);
            }
            return(await PagedList <SlOrder> .CreatePagedList(itemsOrders, slOrderParams.PageSize, slOrderParams.PageNum));
        }
Пример #3
0
        public async Task <ActionResult <MessageModel <IEnumerable <SlOrderDto> > > > GetOrders(
            [FromQuery] SlOrderParams slOrderParams)
        {
            MessageModel <IEnumerable <SlOrderDto> > res = new MessageModel <IEnumerable <SlOrderDto> >();
            PagedList <SlOrder> orderPaged = await _slOrderServices.GetOrderPaged(slOrderParams);

            string previousLink = orderPaged.HasPrevious ? CreateUrl(PagedType.Previous, slOrderParams) : null;
            string nextLink     = orderPaged.HasNext ? CreateUrl(PagedType.Next, slOrderParams) : null;
            var    pagination   = new
            {
                currentPage = orderPaged.PageNum,
                totalPage   = orderPaged.TotalPage,
                totalCount  = orderPaged.TotalCount,
                previousLink,
                nextLink
            };

            HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(pagination));
            res.Data = _mapper.Map <IEnumerable <SlOrderDto> >(orderPaged);
            return(Ok(res));
        }