示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
            }
        }