public async Task <IActionResult> Index(string cateId, int page = 1, int pageSize = PAGE_SIZE_DEFAULT, string sortby = "") { if (page < 1) { page = 1; } ViewData["categories"] = await _categoryQueries.Gets(CurrentLanguage); IEnumerable <ProductHomepageViewModel> products = null; if (string.IsNullOrWhiteSpace(cateId)) { ViewData["CateID"] = ""; products = await _productHomepageQueries.GetProductAsync(lang : CurrentLanguage); if (products == null) { return(Redirect("/error")); } } else { ViewData["CateID"] = cateId; IEnumerable <Category> categories = await _categoryQueries.Gets(CurrentLanguage); products = await GetProductByCategoryAsync(int.Parse(cateId), categories); if (products == null) { return(Redirect("/error")); } } ViewData["TotalProduct"] = products.Count(); ViewData["TotalPage"] = (int)Math.Ceiling(decimal.Divide(products.Count(), pageSize)); ViewData["currentPage"] = page; ViewData["pagesize"] = pageSize; ViewData["sortby"] = sortby; switch (sortby) { case "price-low-to-high": products = products.OrderBy(x => x.SellingCurrentPrice); break; case "price-high-to-low": products = products.OrderByDescending(x => x.SellingCurrentPrice); break; case "product-name": default: products = products.OrderBy(x => x.Name).ToList(); break; } products = products.Skip((page - 1) * pageSize).Take(pageSize).ToList(); return(View(products)); }
public async Task <APIResult> Gets() { return(new APIResult() { Result = 0, Data = await categoryQueries.Gets(LoginSession.LanguageCode) }); }