Пример #1
0
        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)));
            }
        }
Пример #2
0
        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);
        }