public PageableQueryResult <ProductQueryItem> GetByQuery(ProductListSearchQuery query) { var categoriesIds = query.CategoriesIds; var allItemsFiltered = (categoriesIds != null && categoriesIds.Any() ? items.Where(x => categoriesIds.Contains(x.Id / 1000)) : items).ToArray(); var resultItems = allItemsFiltered.Skip(query.PageNumber * query.PageSize).Take(query.PageSize).ToArray(); return(new PageableQueryResult <ProductQueryItem>() { AllItemsCount = allItemsFiltered.Length, Items = resultItems }); }
public ActionResult <PageableQueryResult <ProductQueryItem> > Get([FromQuery] ProductListSearchQuery query) { _logger.Info($"Getting product list with query: {Environment.NewLine}{JsonConvert.SerializeObject(query, Formatting.Indented)}"); return(_productService.GetByQuery(query)); }