public IActionResult Index( int?customisationId = null, string?sortBy = null, string sortDirection = BaseSearchablePageViewModel.Ascending, string?filterBy = null, string?filterValue = null, int page = 1 ) { sortBy ??= DefaultSortByOptions.Name.PropertyName; var newFilterBy = FilteringHelper.GetFilterBy( filterBy, filterValue, Request, CourseDelegatesFilterCookieName ); var centreId = User.GetCentreId(); var adminCategoryId = User.GetAdminCourseCategoryFilter(); CourseDelegatesData courseDelegatesData; try { courseDelegatesData = courseDelegatesService.GetCoursesAndCourseDelegatesForCentre( centreId, adminCategoryId, customisationId ); } catch (CourseNotFoundException) { return(NotFound()); } var model = new CourseDelegatesViewModel( courseDelegatesData, "customisationId", sortBy, sortDirection, newFilterBy, page ); Response.UpdateOrDeleteFilterCookie(CourseDelegatesFilterCookieName, newFilterBy); return(View(model)); }
public IActionResult Index( int?customisationId = null, string?searchString = null, string?sortBy = null, string sortDirection = GenericSortingHelper.Ascending, string?existingFilterString = null, string?newFilterToAdd = null, bool clearFilters = false, int page = 1 ) { sortBy ??= DefaultSortByOptions.Name.PropertyName; var newFilterString = FilteringHelper.GetFilterString( existingFilterString, newFilterToAdd, clearFilters, Request, CourseDelegatesFilterCookieName, CourseDelegateAccountStatusFilterOptions.Active.FilterValue ); var centreId = User.GetCentreId(); var adminCategoryId = User.GetAdminCourseCategoryFilter(); try { var courseDelegatesData = courseDelegatesService.GetCoursesAndCourseDelegatesForCentre( centreId, adminCategoryId, customisationId ); var availableFilters = CourseDelegateViewModelFilterOptions.GetAllCourseDelegatesFilterViewModels( courseDelegatesData.CourseAdminFields ); var searchSortPaginationOptions = new SearchSortFilterAndPaginateOptions( new SearchOptions(searchString), new SortOptions(sortBy, sortDirection), new FilterOptions( newFilterString, availableFilters, CourseDelegateAccountStatusFilterOptions.Active.FilterValue ), new PaginationOptions(page) ); var result = searchSortFilterPaginateService.SearchFilterSortAndPaginate( courseDelegatesData.Delegates, searchSortPaginationOptions ); var model = new CourseDelegatesViewModel( courseDelegatesData, result, availableFilters, "customisationId" ); Response.UpdateFilterCookie(CourseDelegatesFilterCookieName, result.FilterString); return(View(model)); } catch (CourseAccessDeniedException) { return(NotFound()); } }