public ActionResult Index(string option, string search, int?pageNumber, SortStateExe sortOrder = SortStateExe.TimeAsc) { if (!_exeManager.GetAll().Any()) { return(RedirectToAction("NoExecutorsYet")); } else { IEnumerable <Executor> executors = _exeManager.GetAll(); if (search != null) { executors = _exeManager.Search(executors, option, search); } ViewData["TimeSort"] = sortOrder == SortStateExe.TimeAsc ? SortStateExe.TimeDesc : SortStateExe.TimeAsc; ViewData["PriceSort"] = sortOrder == SortStateExe.PriceAsc ? SortStateExe.PriceDesc : SortStateExe.PriceAsc; ViewData["CustomerSort"] = sortOrder == SortStateExe.CustomerAsc ? SortStateExe.CustomerDesc : SortStateExe.CustomerAsc; ViewData["ServiceIndustrySort"] = sortOrder == SortStateExe.ServiceIndustryAsc ? SortStateExe.ServiceIndustryDesc : SortStateExe.ServiceIndustryAsc; return(View(_exeManager.Sort(executors, sortOrder).ToPagedList(pageNumber ?? 1, 10))); } }
public IEnumerable <Executor> Sort(IEnumerable <Executor> executors, SortStateExe sortOrder) { switch (sortOrder) { case SortStateExe.TimeDesc: executors = executors.OrderByDescending(s => s.CreationTime); break; case SortStateExe.PriceAsc: executors = executors.OrderBy(s => s.Price); break; case SortStateExe.PriceDesc: executors = executors.OrderByDescending(s => s.Price); break; case SortStateExe.CustomerAsc: executors = executors.OrderBy(s => s.Customer.Name); break; case SortStateExe.CustomerDesc: executors = executors.OrderByDescending(s => s.Customer.Name); break; case SortStateExe.ServiceIndustryAsc: executors = executors.OrderBy(s => s.ServiceIndustry.Name); break; case SortStateExe.ServiceIndustryDesc: executors = executors.OrderByDescending(s => s.ServiceIndustry.Name); break; default: executors = executors.OrderBy(s => s.CreationTime); break; } return(executors); }