public IActionResult MyStaffList( string?searchString = null, string?sortBy = null, string sortDirection = GenericSortingHelper.Ascending, int page = 1 ) { sortBy ??= DefaultSortByOptions.Name.PropertyName; var adminId = GetAdminID(); var loggedInUserId = User.GetAdminId(); var centreId = GetCentreId(); var loggedInAdminUser = userDataService.GetAdminUserById(loggedInUserId !.GetValueOrDefault()); var centreRegistrationPrompts = centreRegistrationPromptsService.GetCentreRegistrationPromptsByCentreId(centreId); var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId); var isSupervisor = User.GetCustomClaimAsBool(CustomClaimTypes.IsSupervisor) ?? false; var supervisorDelegateDetailViewModels = supervisorDelegateDetails.Select( supervisor => { return(new SupervisorDelegateDetailViewModel( supervisor, new ReturnPageQuery( page, $"{supervisor.ID}-card", PaginationOptions.DefaultItemsPerPage, searchString, sortBy, sortDirection ), isSupervisor )); } ); var searchSortPaginationOptions = new SearchSortFilterAndPaginateOptions( new SearchOptions(searchString), new SortOptions(sortBy, sortDirection), null, new PaginationOptions(page) ); var result = searchSortFilterPaginateService.SearchFilterSortAndPaginate( supervisorDelegateDetailViewModels, searchSortPaginationOptions ); var model = new MyStaffListViewModel( loggedInAdminUser, result, centreRegistrationPrompts ); ModelState.ClearErrorsForAllFieldsExcept("DelegateEmail"); return(View("MyStaffList", model)); }
public IActionResult MyStaffList(string?searchString = null, string?sortBy = null, string sortDirection = BaseSearchablePageViewModel.Ascending, int page = 1) { var adminId = GetAdminID(); var centreId = GetCentreId(); var centreCustomPrompts = centreCustomPromptsService.GetCustomPromptsForCentreByCentreId(centreId); var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId); sortBy ??= DefaultSortByOptions.Name.PropertyName; var model = new MyStaffListViewModel(supervisorDelegateDetails, centreCustomPrompts, searchString, sortBy, sortDirection, page); return(View("MyStaffList", model)); }
public IActionResult AddSuperviseDelegate(MyStaffListViewModel model) { var adminId = GetAdminID(); var centreId = GetCentreId(); var supervisorEmail = GetUserEmail(); AddSupervisorDelegateAndReturnId(adminId, model.DelegateEmail ?? String.Empty, supervisorEmail, centreId); if (ModelState.IsValid) { return(RedirectToAction("MyStaffList", model.Page)); } else { ModelState.ClearErrorsForAllFieldsExcept("DelegateEmail"); return(MyStaffList(model.SearchString, model.SortBy, model.SortDirection, model.Page)); } }