public IActionResult ChangeSortType(AdminTestDrivesSortStrategyType sortStrategyType)
        {
            var sortTypeKey = WebConstants.CookieAdminTestDrivesSortTypeKey;

            this.cookiesService.SetCookieValue(this.HttpContext.Response.Cookies, sortTypeKey, sortStrategyType.ToString());

            return(RedirectToAction("Index"));
        }
Example #2
0
        public static ITestDriveSortStrategy GetStrategy(
            AdminTestDrivesSortStrategyType sortStrategyType,
            SortStrategyDirection sortDirection)
        {
            switch (sortStrategyType)
            {
            case AdminTestDrivesSortStrategyType.Status when sortDirection == SortStrategyDirection.Ascending:
                return(new SortTestDrivesByStatusStrategy());

            case AdminTestDrivesSortStrategyType.Status when sortDirection == SortStrategyDirection.Descending:
                return(new SortTestDrivesByStatusDescStrategy());

            case AdminTestDrivesSortStrategyType.Price when sortDirection == SortStrategyDirection.Ascending:
                return(new SortTestDrivesByPredicateStrategy <DateTime>(td => td.ScheduleDate));

            case AdminTestDrivesSortStrategyType.Price when sortDirection == SortStrategyDirection.Descending:
                return(new SortTestDrivesByPredicateDescStrategy <DateTime>(td => td.ScheduleDate));

            case AdminTestDrivesSortStrategyType.Email when sortDirection == SortStrategyDirection.Ascending:
                return(new SortTestDrivesByPredicateStrategy <string>(td => td.User.Email));

            case AdminTestDrivesSortStrategyType.Email when sortDirection == SortStrategyDirection.Descending:
                return(new SortTestDrivesByPredicateDescStrategy <string>(td => td.User.Email));

            case AdminTestDrivesSortStrategyType.PassedCount when sortDirection == SortStrategyDirection.Ascending:
                return(new SortTestDrivesByPassedCountStrategy());

            case AdminTestDrivesSortStrategyType.PassedCount when sortDirection == SortStrategyDirection.Descending:
                return(new SortTestDrivesByPassedCountDescStrategy());

            case AdminTestDrivesSortStrategyType.Date when sortDirection == SortStrategyDirection.Ascending:
                return(new SortTestDrivesByPredicateStrategy <decimal>(td => td.Car.Price));

            case AdminTestDrivesSortStrategyType.Date when sortDirection == SortStrategyDirection.Descending:
                return(new SortTestDrivesByPredicateDescStrategy <decimal>(td => td.Car.Price));

            default:
                throw new InvalidEnumArgumentException();
            }
        }