private async Task <IQueryable <Product> > SortByPriceAsync(IQueryable <Product> products, PriceSort priceSort) { switch (priceSort) { case PriceSort.LowToHigh: products = products.OrderBy(i => i.Price); break; case PriceSort.HighToLow: products = products.OrderByDescending(i => i.Price); break; default: break; } return(products); }
public async Task <IActionResult> Index(bool loadAll, int?subcatId, double?minPrice, double?maxPrice, int?page, string searchQuery, PriceSort priceSort) { var currentSubc = TempData["currentSubc"] as int?; if (!subcatId.HasValue && currentSubc.HasValue) { subcatId = currentSubc; } if (loadAll) { subcatId = null; } var vm = new IndexVM { Categories = await db.Categories .Include(c => c.SubCategories) .Select(i => i).ToListAsync(), Products = await filterService.Filter(new Models.Filters.IndexFilter { SubCategoryId = subcatId, MinPrice = minPrice, MaxPrice = maxPrice, Page = page, SearchQuery = searchQuery, PriceSort = priceSort }), PagesCount = filterService.PagesCount }; if (subcatId.HasValue) { TempData["currentSubc"] = subcatId; } return(View(vm)); }