public async Task <IActionResult> Items( int?catalogTypeId, [FromQuery] int pageIndex = 0, [FromQuery] int pageSize = 6 ) { var query = (IQueryable <CatalogItem>)_context.CatalogItems; if (catalogTypeId.HasValue) { query = query.Where(c => c.CatalogTypeId == catalogTypeId); } var itemsCount = await query.LongCountAsync(); var items = await query .OrderBy(c => c.Name) .Skip(pageIndex * pageSize) .Take(pageSize) .ToListAsync(); items = ChangePictureUrl(items); var model = new ViewModels.PaginatedItemsViewModel <CatalogItem> { PageIndex = pageIndex, PageSize = items.Count, Count = itemsCount, Data = items }; return(Ok(model)); }
public async Task <IActionResult> Items( [FromQuery] int pageIndex = 0, [FromQuery] int pageSize = 6) //async needs to be wrapped with Task { var itemsCount = await _context.CatalogItems.LongCountAsync(); var items = await _context.CatalogItems .OrderBy(c => c.Name) .Skip(pageIndex * pageSize) .Take(pageSize) .ToListAsync(); items = ChangePictureUrl(items); var model = new ViewModels.PaginatedItemsViewModel <CatalogItem> { PageIndex = pageIndex, PageSize = items.Count, Count = itemsCount, Data = items }; return(Ok(model)); }