Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }