public IActionResult Index( string?searchString = null, string?filterBy = null, string?filterValue = null, int page = 1 ) { filterBy = FilteringHelper.GetFilterBy( filterBy, filterValue, Request, AdminFilterCookieName ); var centreId = User.GetCentreId(); var adminUsersAtCentre = userDataService.GetAdminUsersByCentreId(centreId); var categories = GetCourseCategories(centreId); var model = new CentreAdministratorsViewModel( centreId, adminUsersAtCentre, categories, searchString, filterBy, page ); Response.UpdateOrDeleteFilterCookie(AdminFilterCookieName, filterBy); return(View(model)); }
public void CurrentFiltersViewComponent_selects_expected_filters_to_display() { // Given var viewComponent = new CurrentFiltersViewComponent { ViewComponentContext = viewComponentContext }; var categories = new List <Category> { new Category { CategoryName = "Word" }, new Category { CategoryName = "Excel" } }; const string searchString = "test"; const string sortBy = "sort"; const string sortDirection = "sortDirection"; const int itemsPerPage = 10; var availableFilters = AdministratorsViewModelFilterOptions.GetAllAdministratorsFilterModels(categories); var inputViewModel = new CentreAdministratorsViewModel( 1, new SearchSortFilterPaginationResult <AdminUser>( new PaginationResult <AdminUser>(new List <AdminUser>(), 1, 1, itemsPerPage, 0, true), searchString, sortBy, sortDirection, "CategoryName|CategoryName|Word╡Role|IsCentreAdmin|true" ), availableFilters, UserTestHelper.GetDefaultAdminUser() ); var expectedAppliedFilters = new List <AppliedFilterViewModel> { new AppliedFilterViewModel( AdminRoleFilterOptions.CentreAdministrator.DisplayText, "Role", AdminRoleFilterOptions.CentreAdministrator.FilterValue ), new AppliedFilterViewModel("Word", "Category", "CategoryName|CategoryName|Word"), }; var expectedFilterViewModel = new CurrentFiltersViewModel( expectedAppliedFilters, searchString, sortBy, sortDirection, itemsPerPage, new Dictionary <string, string>() ); // When var model = viewComponent.Invoke(inputViewModel).As <ViewViewComponentResult>().ViewData.Model .As <CurrentFiltersViewModel>(); // Then model.Should().BeEquivalentTo(expectedFilterViewModel); }
public void Centre_administrators_should_correctly_return_the_second_page_of_admins() { var model = new CentreAdministratorsViewModel( 1, adminUsers, new List <string>(), null, null, 2 ); model.Admins.Count().Should().Be(5); model.Admins.First().Name.Should().BeEquivalentTo("k Surname"); }
public void Centre_administrators_should_default_to_returning_the_first_ten_admins() { var model = new CentreAdministratorsViewModel( 1, adminUsers, new List <string>(), null, null, 1 ); model.Admins.Count().Should().Be(10); model.Admins.FirstOrDefault(adminUser => adminUser.Name == "k Surname").Should().BeNull(); }
public void CurrentFiltersViewComponent_selects_expected_filters_to_display() { // Given var viewComponent = new CurrentFiltersViewComponent { ViewComponentContext = viewComponentContext }; var categories = new[] { "Word", "Excel" }; const string searchString = "test"; var inputViewModel = new CentreAdministratorsViewModel( 1, new List <AdminUser>(), categories, searchString, "CategoryName|CategoryName|Word╡Role|IsCentreAdmin|true", 1 ); var expectedAppliedFilters = new List <AppliedFilterViewModel> { new AppliedFilterViewModel( AdminRoleFilterOptions.CentreAdministrator.DisplayText, "Role", AdminRoleFilterOptions.CentreAdministrator.FilterValue ), new AppliedFilterViewModel("Word", "Category", "CategoryName|CategoryName|Word"), }; var expectedFilterViewModel = new CurrentFiltersViewModel( expectedAppliedFilters, searchString, new Dictionary <string, string>() ); // When var model = viewComponent.Invoke(inputViewModel).As <ViewViewComponentResult>().ViewData.Model .As <CurrentFiltersViewModel>(); // Then model.Should().BeEquivalentTo(expectedFilterViewModel); }
public void Centre_Administrators_filters_should_be_set() { // Given var roleOptions = new[] { AdminRoleFilterOptions.CentreAdministrator, AdminRoleFilterOptions.Supervisor, AdminRoleFilterOptions.Trainer, AdminRoleFilterOptions.ContentCreatorLicense, AdminRoleFilterOptions.CmsAdministrator, AdminRoleFilterOptions.CmsManager }; var accountStatusOptions = new[] { AdminAccountStatusFilterOptions.IsLocked, AdminAccountStatusFilterOptions.IsNotLocked }; var expectedFilters = new[] { new FilterViewModel("Role", "Role", roleOptions), new FilterViewModel("CategoryName", "Category", new List <FilterOptionViewModel>()), new FilterViewModel("AccountStatus", "Account Status", accountStatusOptions) }.AsEnumerable(); // When var model = new CentreAdministratorsViewModel( 1, adminUsers, new List <string>(), null, null, 2 ); // Then model.Filters.Should().BeEquivalentTo(expectedFilters); }