public static IOptionSortStrategy GetStrategy( OptionSortStrategyType sortStrategyType, SortStrategyDirection sortDirection) { switch (sortStrategyType) { case OptionSortStrategyType.Cars when sortDirection == SortStrategyDirection.Ascending: return(new SortOptionsByPredicateStrategy <int>(o => o.CarsOptions.Count)); case OptionSortStrategyType.Cars when sortDirection == SortStrategyDirection.Descending: return(new SortOptionsByPredicateDescStrategy <int>(o => o.CarsOptions.Count)); case OptionSortStrategyType.Name when sortDirection == SortStrategyDirection.Ascending: return(new SortOptionsByPredicateStrategy <string>(o => o.Name)); case OptionSortStrategyType.Name when sortDirection == SortStrategyDirection.Descending: return(new SortOptionsByPredicateDescStrategy <string>(o => o.Name)); case OptionSortStrategyType.OptionType when sortDirection == SortStrategyDirection.Ascending: return(new SortOptionsByPredicateStrategy <string>(o => o.OptionType.Name)); case OptionSortStrategyType.OptionType when sortDirection == SortStrategyDirection.Descending: return(new SortOptionsByPredicateDescStrategy <string>(o => o.OptionType.Name)); case OptionSortStrategyType.Price when sortDirection == SortStrategyDirection.Ascending: return(new SortOptionsByPredicateStrategy <decimal>(o => o.Price)); case OptionSortStrategyType.Price when sortDirection == SortStrategyDirection.Descending: return(new SortOptionsByPredicateDescStrategy <decimal>(o => o.Price)); default: throw new InvalidEnumArgumentException(); } }
public IActionResult ChangeSortType(OptionSortStrategyType sortStrategyType) { var sortTypeKey = WebConstants.CookieAdminOptionsSortTypeKey; this.cookiesService.SetCookieValue(this.HttpContext.Response.Cookies, sortTypeKey, sortStrategyType.ToString()); return(RedirectToAction("Index")); }