示例#1
0
        public IActionResult Index(EmailDelegatesViewModel model, string?filterBy = null, string?filterValue = null)
        {
            var delegateUsers = GetDelegateUserCards();

            if (!ModelState.IsValid)
            {
                var newFilterBy   = FilteringHelper.GetFilterBy(filterBy, filterValue, Request, EmailDelegateFilterCookieName);
                var jobGroups     = jobGroupsDataService.GetJobGroupsAlphabetical();
                var customPrompts = centreCustomPromptHelper.GetCustomPromptsForCentre(User.GetCentreId());
                var viewModel     = new EmailDelegatesViewModel(delegateUsers, jobGroups, customPrompts, newFilterBy)
                {
                    SelectedDelegateIds = model.SelectedDelegateIds,
                    Day   = model.Day,
                    Month = model.Month,
                    Year  = model.Year
                };
                return(View(viewModel));
            }

            var    selectedUsers = delegateUsers.Where(user => model.SelectedDelegateIds !.Contains(user.Id)).ToList();
            var    emailDate     = new DateTime(model.Year !.Value, model.Month !.Value, model.Day !.Value);
            string baseUrl       = ConfigHelper.GetAppConfig().GetAppRootPath();

            passwordResetService.SendWelcomeEmailsToDelegates(selectedUsers, emailDate, baseUrl);

            return(View("Confirmation", selectedUsers.Count));
        }
示例#2
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));
        }
示例#3
0
        public IActionResult Index(
            string?searchString  = null,
            string?sortBy        = null,
            string sortDirection = BaseSearchablePageViewModel.Ascending,
            string?filterBy      = null,
            string?filterValue   = null,
            int page             = 1
            )
        {
            sortBy ??= DefaultSortByOptions.Name.PropertyName;
            filterBy = FilteringHelper.GetFilterBy(
                filterBy,
                filterValue,
                Request,
                DelegateGroupsFilterCookieName
                );

            var centreId = User.GetCentreId();
            var groups   = groupsService.GetGroupsForCentre(centreId).ToList();

            var model = new DelegateGroupsViewModel(
                groups,
                GetRegistrationPromptsWithSetOptions(centreId),
                searchString,
                sortBy,
                sortDirection,
                filterBy,
                page
                );

            Response.UpdateOrDeleteFilterCookie(DelegateGroupsFilterCookieName, filterBy);

            return(View(model));
        }
示例#4
0
        public void GetFilterBy_with_filterBy_and_filterValue_returns_combined_filter_by()
        {
            // When
            var result = FilteringHelper.GetFilterBy("filter-by", "filter-value", httpRequest, CookieName);

            // Then
            result.Should().Be("filter-by╡filter-value");
        }
示例#5
0
        public void GetFilterBy_with_CLEAR_filterBy_and_set_filterValue_returns_filterValue()
        {
            // When
            var result = FilteringHelper.GetFilterBy("CLEAR", "filter-value", httpRequest, CookieName);

            // Then
            result.Should().Be("filter-value");
        }
示例#6
0
        public void GetFilterBy_with_CLEAR_filterBy_and_no_filterValue_returns_null()
        {
            // When
            var result = FilteringHelper.GetFilterBy("CLEAR", null, httpRequest, CookieName);

            // Then
            result.Should().BeNull();
        }
示例#7
0
        public void GetFilterBy_with_no_parameters_and_no_cookies_returns_defaultFilterValue()
        {
            // When
            var result = FilteringHelper.GetFilterBy(null, null, httpRequest, CookieName, "default-filter");

            // Then
            result.Should().Be("default-filter");
        }
示例#8
0
        public void GetFilterBy_with_no_parameters_returns_cookie_value()
        {
            // Given
            const string CookieValue = "Cookie Value";

            A.CallTo(() => httpRequest.Cookies.ContainsKey(CookieName)).Returns(true);
            A.CallTo(() => httpRequest.Cookies[CookieName]).Returns(CookieValue);

            // When
            var result = FilteringHelper.GetFilterBy(null, null, httpRequest, CookieName);

            // Then
            result.Should().Be(CookieValue);
        }
示例#9
0
        public IActionResult Index(
            int?customisationId  = null,
            string?sortBy        = null,
            string sortDirection = BaseSearchablePageViewModel.Ascending,
            string?filterBy      = null,
            string?filterValue   = null,
            int page             = 1
            )
        {
            sortBy ??= DefaultSortByOptions.Name.PropertyName;
            var newFilterBy = FilteringHelper.GetFilterBy(
                filterBy,
                filterValue,
                Request,
                CourseDelegatesFilterCookieName
                );

            var centreId        = User.GetCentreId();
            var adminCategoryId = User.GetAdminCourseCategoryFilter();
            CourseDelegatesData courseDelegatesData;

            try
            {
                courseDelegatesData =
                    courseDelegatesService.GetCoursesAndCourseDelegatesForCentre(
                        centreId,
                        adminCategoryId,
                        customisationId
                        );
            }
            catch (CourseNotFoundException)
            {
                return(NotFound());
            }

            var model = new CourseDelegatesViewModel(
                courseDelegatesData,
                "customisationId",
                sortBy,
                sortDirection,
                newFilterBy,
                page
                );

            Response.UpdateOrDeleteFilterCookie(CourseDelegatesFilterCookieName, newFilterBy);
            return(View(model));
        }
示例#10
0
        public IActionResult Index(
            string?searchString  = null,
            string?sortBy        = null,
            string sortDirection = BaseSearchablePageViewModel.Ascending,
            string?filterBy      = null,
            string?filterValue   = null,
            int page             = 1
            )
        {
            sortBy ??= DefaultSortByOptions.Name.PropertyName;
            filterBy = FilteringHelper.GetFilterBy(
                filterBy,
                filterValue,
                Request,
                CourseFilterCookieName,
                CourseStatusFilterOptions.IsActive.FilterValue
                );

            var centreId      = User.GetCentreId();
            var categoryId    = User.GetAdminCourseCategoryFilter();
            var centreCourses =
                courseService.GetCentreSpecificCourseStatistics(centreId, categoryId);
            var categories = courseCategoriesDataService.GetCategoriesForCentreAndCentrallyManagedCourses(centreId)
                             .Select(c => c.CategoryName);
            var topics = courseTopicsDataService.GetCourseTopicsAvailableAtCentre(centreId).Select(c => c.CourseTopic);

            var model = new CourseSetupViewModel(
                centreCourses,
                categories,
                topics,
                searchString,
                sortBy,
                sortDirection,
                filterBy,
                page
                );

            Response.UpdateOrDeleteFilterCookie(CourseFilterCookieName, filterBy);

            return(View(model));
        }
示例#11
0
        public IActionResult Index(
            int page             = 1,
            string?searchString  = null,
            string?sortBy        = null,
            string sortDirection = BaseSearchablePageViewModel.Ascending,
            string?filterBy      = null,
            string?filterValue   = null
            )
        {
            sortBy ??= DefaultSortByOptions.Name.PropertyName;
            filterBy = FilteringHelper.GetFilterBy(
                filterBy,
                filterValue,
                Request,
                DelegateFilterCookieName,
                DelegateActiveStatusFilterOptions.IsActive.FilterValue
                );

            var centreId      = User.GetCentreId();
            var jobGroups     = jobGroupsDataService.GetJobGroupsAlphabetical();
            var customPrompts = centreCustomPromptHelper.GetCustomPromptsForCentre(centreId);
            var delegateUsers = userDataService.GetDelegateUserCardsByCentreId(centreId);

            var model = new AllDelegatesViewModel(
                delegateUsers,
                jobGroups,
                customPrompts,
                page,
                searchString,
                sortBy,
                sortDirection,
                filterBy
                );

            Response.UpdateOrDeleteFilterCookie(DelegateFilterCookieName, filterBy);

            return(View(model));
        }
示例#12
0
        public IActionResult Index(
            string?filterBy    = null,
            string?filterValue = null,
            bool selectAll     = false
            )
        {
            var newFilterBy   = FilteringHelper.GetFilterBy(filterBy, filterValue, Request, EmailDelegateFilterCookieName);
            var jobGroups     = jobGroupsDataService.GetJobGroupsAlphabetical();
            var customPrompts = centreCustomPromptHelper.GetCustomPromptsForCentre(User.GetCentreId());
            var delegateUsers = GetDelegateUserCards();

            var model = new EmailDelegatesViewModel(
                delegateUsers,
                jobGroups,
                customPrompts,
                newFilterBy,
                selectAll
                );

            Response.UpdateOrDeleteFilterCookie(EmailDelegateFilterCookieName, newFilterBy);

            return(View(model));
        }