public ViewResult Show(string sortOrder, string currentFilter, string searchString, int?page) { ViewBag.CurrentSort = sortOrder; ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; List <Promotion> promotions = promotionManager.GetAll().ToList(); var promotion = from s in promotions select s; if (!String.IsNullOrEmpty(searchString)) { promotion = promotion.Where(s => s.PromotionFor.Contains(searchString)); } switch (sortOrder) { case "name_desc": promotion = promotion.OrderByDescending(s => s.PromotionFor); break; default: // Name ascending promotion = promotion.OrderBy(s => s.PromotionFor); break; } int pageSize = 10; int pageNumber = (page ?? 1); return(View(promotion.ToPagedList(pageNumber, pageSize))); }