Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }