public void GetEmailDelegatesFilterViewModels_should_return_correct_job_group_filter() { // Given var(jobGroups, expectedFilter) = GetSampleJobGroupsAndFilter(); // When var result = EmailDelegatesViewModelFilterOptions.GetEmailDelegatesFilterViewModels(jobGroups, new List <CustomPrompt>()); // Then result.Should().ContainEquivalentOf(expectedFilter); }
public IActionResult Index( EmailDelegatesFormData formData, string?existingFilterString = null, string?newFilterToAdd = null, bool clearFilters = false ) { var delegateUsers = GetDelegateUserCards(); if (!ModelState.IsValid) { var newFilterString = FilteringHelper.GetFilterString( existingFilterString, newFilterToAdd, clearFilters, Request, EmailDelegateFilterCookieName ); var jobGroups = jobGroupsDataService.GetJobGroupsAlphabetical(); var customPrompts = promptsService.GetCentreRegistrationPrompts(User.GetCentreId()); var promptsWithOptions = customPrompts.Where(customPrompt => customPrompt.Options.Count > 0); var availableFilters = EmailDelegatesViewModelFilterOptions.GetEmailDelegatesFilterModels( jobGroups, promptsWithOptions ); var searchSortPaginationOptions = new SearchSortFilterAndPaginateOptions( null, null, new FilterOptions(newFilterString, availableFilters), null ); var result = searchSortFilterPaginateService.SearchFilterSortAndPaginate( delegateUsers, searchSortPaginationOptions ); var viewModel = new EmailDelegatesViewModel(result, availableFilters, formData); return(View(viewModel)); } var selectedUsers = delegateUsers.Where(user => formData.SelectedDelegateIds !.Contains(user.Id)).ToList(); var emailDate = new DateTime(formData.Year !.Value, formData.Month !.Value, formData.Day !.Value); var baseUrl = config.GetAppRootPath(); passwordResetService.SendWelcomeEmailsToDelegates(selectedUsers, emailDate, baseUrl); return(View("Confirmation", selectedUsers.Count)); }
public void GetEmailDelegatesFilterModels_should_return_expected_filters() { // Given var(jobGroups, jobGroupsFilter) = GetSampleJobGroupsAndFilter(); var(customPrompts, promptFilters) = GetSampleCustomPromptsAndFilters(); // When var result = EmailDelegatesViewModelFilterOptions.GetEmailDelegatesFilterModels( jobGroups, customPrompts ); // Then var expectedFilters = promptFilters.Prepend(jobGroupsFilter); result.Should().BeEquivalentTo(expectedFilters); }
public IActionResult Index( string?existingFilterString = null, string?newFilterToAdd = null, bool clearFilters = false, bool selectAll = false ) { var newFilterString = FilteringHelper.GetFilterString( existingFilterString, newFilterToAdd, clearFilters, Request, EmailDelegateFilterCookieName ); var jobGroups = jobGroupsDataService.GetJobGroupsAlphabetical(); var customPrompts = promptsService.GetCentreRegistrationPrompts(User.GetCentreId()); var delegateUsers = GetDelegateUserCards(); var promptsWithOptions = customPrompts.Where(customPrompt => customPrompt.Options.Count > 0); var availableFilters = EmailDelegatesViewModelFilterOptions.GetEmailDelegatesFilterModels( jobGroups, promptsWithOptions ); var searchSortPaginationOptions = new SearchSortFilterAndPaginateOptions( null, null, new FilterOptions(newFilterString, availableFilters), null ); var result = searchSortFilterPaginateService.SearchFilterSortAndPaginate( delegateUsers, searchSortPaginationOptions ); var model = new EmailDelegatesViewModel( result, availableFilters, selectAll ); Response.UpdateFilterCookie(EmailDelegateFilterCookieName, result.FilterString); return(View(model)); }