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)); }