/// <summary> /// Retrieve the players by a sort filter and limiting the amount we take by /// calling paging extention method /// </summary> /// <param name="sortChoice"></param> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public List <Player> SortPlayerBy(int sortChoice, int pageNumber, int pageSize, out int count) { IQueryable <Player> query; SortCategories category = (SortCategories)sortChoice; switch (category) { case SortCategories.Rating: query = db.Players.OrderByDescending(x => x.Rating.Overall).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Worth: query = db.Players.OrderByDescending(x => x.MaxWorth).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Speed: query = db.Players.OrderByDescending(x => x.Rating.Pace).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Shooting: query = db.Players.OrderByDescending(x => x.Rating.Shooting).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Dribble: query = db.Players.OrderByDescending(x => x.Rating.Dribbling).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Defender: query = db.Players.OrderByDescending(x => x.Rating.Defense).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); case SortCategories.Strongest: query = db.Players.OrderByDescending(x => x.Rating.Physical).Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); default: query = db.Players.Include(r => r.Rating).Include(i => i.Image); count = query.Count(); return(query.Page(pageNumber, pageSize).ToList()); } }
public ActionResult ProductList(int?subId, SortCategories sortBy = SortCategories.All, int page = 1, int pageSize = 4) { if (subId == null) { return(HttpNotFound()); } IEnumerable <Product> pro = manager.GetProducts().Where(p => p.SubCategoryId == subId); switch (sortBy) { case SortCategories.Name: pro = pro.OrderBy(p => p.Name); break; case SortCategories.PriceHigh: pro = pro.OrderByDescending(p => p.Price); break; case SortCategories.PriceLower: pro = pro.OrderBy(p => p.Price); break; case SortCategories.Reviews: pro.ToList(); break; case SortCategories.BestShiping: pro.ToList(); break; default: pro.ToList(); break; } List <ProductStoreViewModel> prod = pro .Skip((page - 1) * pageSize) .Take(pageSize) .Select(p => new ProductStoreViewModel { Name = p.Name, ShortDescription = p.Description, LongDescription = p.LongDescription, Price = p.Price, Path = p.Images.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).First(), ProductID = p.Id, SubCategoryId = p.SubCategoryId.Value, }).ToList(); int totalCount = pro.Count(); var products = ListExtensions.ToPaginatedList(prod, page, pageSize, totalCount); ProductsListViewModel model = new ProductsListViewModel { ProductList = products, pageSizes = new List <SelectListItem> { new SelectListItem { Text = "4", Value = "4" }, new SelectListItem { Text = "8", Value = "8" }, new SelectListItem { Text = "12", Value = "12" }, new SelectListItem { Text = "24", Value = "24" }, }, CurrentSubCategoryId = subId.Value, SubCategoryName = manager.GetSubCategoryById(subId.Value).Name, CurrentPage = products.PageIndex }; if (Request.IsAjaxRequest()) { return(PartialView("_PartialProductList", model)); } return(View(model)); }