public async Task <IActionResult> Products(int startPage = 0) { string sessionCookie = "BeachTowelShop-Session"; if (!Request.Cookies.ContainsKey(sessionCookie)) { await Set("BeachTowelShop-Session", Guid.NewGuid().ToString(), 100).ConfigureAwait(false); } var pageSize = 20; var fromPage = startPage * pageSize; ViewBag.NextPage = startPage + 1; ViewBag.PreviousPage = startPage - 1; GalleryProductsViewModel productList; productList = new GalleryProductsViewModel(); List <CategoryViewModel> categoryViewModelList; if (!_cache.TryGetValue("CategoryViewModel", out categoryViewModelList)) { var allCategories = await __productService.GetAllCategories().ConfigureAwait(false); categoryViewModelList = _mapper.Map <List <CategoryViewModel> >(allCategories).OrderBy(a => a.Name).ToList(); _cache.Set("CategoryViewModel", categoryViewModelList); } categoryViewModelList = _cache.Get("CategoryViewModel") as List <CategoryViewModel>; productList.AllCategories.AddRange(categoryViewModelList); List <GalleryProductViewModel> productViewModelList; if (!_cache.TryGetValue("GalleryProductViewModel", out productViewModelList)) { var allProducts = await __productService.GetAllProducts().ConfigureAwait(false); productViewModelList = _mapper.Map <List <GalleryProductViewModel> >(allProducts); _cache.Set("GalleryProductViewModel", productViewModelList); } productViewModelList = _cache.Get("GalleryProductViewModel") as List <GalleryProductViewModel>; var lastPage = productViewModelList.Count / pageSize; if (fromPage >= lastPage) { ViewBag.NextPage = lastPage; ViewBag.PreviousPage = lastPage - 1; } ViewBag.Action = "Products"; productList.AllProducts = productViewModelList.Skip(fromPage).Take(pageSize).ToList(); return(View(productList)); }
public async Task <IActionResult> GetItemsForCategory(string categoryid, int startPage = 0) { var pageSize = 20; var fromPage = startPage * pageSize; ViewBag.NextPage = startPage + 1; ViewBag.PreviousPage = startPage - 1; GalleryProductsViewModel productList; productList = new GalleryProductsViewModel(); List <CategoryViewModel> categoryViewModelList; if (!_cache.TryGetValue("CategoryViewModel", out categoryViewModelList)) { var allCategories = await __productService.GetAllCategories().ConfigureAwait(false); categoryViewModelList = _mapper.Map <List <CategoryViewModel> >(allCategories).OrderBy(a => a.Name).ToList(); _cache.Set("CategoryViewModel", categoryViewModelList); } categoryViewModelList = _cache.Get("CategoryViewModel") as List <CategoryViewModel>; productList.AllCategories.AddRange(categoryViewModelList); List <GalleryProductViewModel> productViewModelList; if (!_cache.TryGetValue($"GalleryProductViewModelFiler{categoryid}", out productViewModelList)) { var allProducts = await __productService.GetAllProductsForCategory(categoryid).ConfigureAwait(false); productViewModelList = _mapper.Map <List <GalleryProductViewModel> >(allProducts); _cache.Set($"GalleryProductViewModelFilter{categoryid}", productViewModelList); } productViewModelList = _cache.Get($"GalleryProductViewModelFilter{categoryid}") as List <GalleryProductViewModel>; var lastPage = productViewModelList.Count / pageSize; if (fromPage >= lastPage) { ViewBag.NextPage = lastPage; ViewBag.PreviousPage = lastPage - 1; } ViewBag.CategoryId = $"{categoryid}"; productList.AllProducts = productViewModelList.Skip(fromPage).Take(pageSize).ToList(); ViewBag.Action = "Sort"; return(View("Products", productList)); }