Example #1
0
        public async Task <IActionResult> GetItems([FromQuery] ItemsParams itemsParams)
        {
            var items = await _repo.GetItems(itemsParams);

            var itemsToReturn = _mapper.Map <IEnumerable <ItemsForDisplayDto> >(items);

            Response.AddPagination(items.CurrentPage, items.PageSize, items.TotalCount, items.TotalPages);

            return(Ok(itemsToReturn));
        }
        public async Task <PagedList <Item> > GetItems(ItemsParams itemsParams)
        {
            var items = _context.Items.AsQueryable();

            if (itemsParams.Types != null)
            {
                items = items.Where(t => itemsParams.Types.Contains(t.Type));
            }

            if (itemsParams.MinPrice != 0 || itemsParams.MaxPrice != 9999)
            {
                var min = itemsParams.MinPrice;
                var max = itemsParams.MaxPrice;
                items = items.Where(p => p.Price >= min && p.Price <= max);
            }

            return(await PagedList <Item> .CreatAsync(items, itemsParams.PageNumber, itemsParams.PageSize));
        }