コード例 #1
0
        public IActionResult ExecuteRemoveFromCourse(
            int progressId,
            DelegateAccessRoute accessedVia,
            RemoveFromCourseViewModel model
            )
        {
            if (!ModelState.IsValid)
            {
                return(View("ConfirmRemoveFromCourse", model));
            }

            var progress = progressService.GetDetailedCourseProgress(progressId);

            if (!courseService.DelegateHasCurrentProgress(progressId) || progress == null)
            {
                return(new NotFoundResult());
            }

            courseService.RemoveDelegateFromCourse(
                progress.DelegateId,
                progress.CustomisationId,
                RemovalMethod.RemovedByAdmin
                );

            return(RedirectToPreviousPage(progress.DelegateId, progress.CustomisationId, accessedVia, model.ReturnPageQuery));
        }
コード例 #2
0
        public void Delegate_removal_for_valid_delegate_returns_redirect_to_action()
        {
            // given
            A.CallTo(() => userDataService.GetDelegateUserCardById(1))
            .Returns(new DelegateUserCard {
                CentreId = 2, Id = 1
            });
            A.CallTo(() => courseDataService.GetCourseNameAndApplication(1))
            .Returns(new CourseNameInfo());
            A.CallTo(
                () => courseService.DelegateHasCurrentProgress(
                    1,
                    1
                    )
                )
            .Returns(true);
            var model = new RemoveFromCourseViewModel {
                Confirm = true
            };

            // when
            var result = viewDelegateController.ExecuteRemoveFromCourse(1, 1, model);

            // then
            result.Should().BeRedirectToActionResult();
        }
        public void Delegate_removal_for_delegate_with_no_active_progress_returns_not_found_result()
        {
            // Given
            var delegateCourseInfo    = new DelegateCourseInfo();
            var delegateCourseDetails = new DetailedCourseProgress(
                new Progress(),
                new List <DetailedSectionProgress>(),
                delegateCourseInfo
                );

            A.CallTo(() => progressService.GetDetailedCourseProgress(ProgressId))
            .Returns(delegateCourseDetails);
            A.CallTo(() => courseService.DelegateHasCurrentProgress(ProgressId))
            .Returns(false);

            var model = new RemoveFromCourseViewModel
            {
                Confirm     = true,
                AccessedVia = DelegateAccessRoute.ViewDelegate,
            };

            // When
            var result = delegateProgressController.ExecuteRemoveFromCourse(
                ProgressId,
                DelegateAccessRoute.ViewDelegate,
                model
                );

            // Then
            result.Should().BeNotFoundResult();
        }
        public void Delegate_removal_for_valid_delegate_returns_redirect_to_action_course_delegates()
        {
            // Given
            var delegateCourseInfo = new DelegateCourseInfo
            {
                DelegateId = DelegateId, CustomisationId = CustomisationId
            };
            var delegateCourseDetails = new DetailedCourseProgress(
                new Progress {
                CandidateId = DelegateId, CustomisationId = CustomisationId
            },
                new List <DetailedSectionProgress>(),
                delegateCourseInfo
                );

            A.CallTo(() => progressService.GetDetailedCourseProgress(ProgressId))
            .Returns(delegateCourseDetails);

            A.CallTo(() => courseService.DelegateHasCurrentProgress(ProgressId))
            .Returns(true);

            var model = new RemoveFromCourseViewModel
            {
                Confirm         = true,
                AccessedVia     = DelegateAccessRoute.CourseDelegates,
                ReturnPageQuery = ReturnPageQueryHelper.GetDefaultReturnPageQuery(),
            };

            // When
            var result = delegateProgressController.ExecuteRemoveFromCourse(
                ProgressId,
                DelegateAccessRoute.CourseDelegates,
                model
                );

            // Then
            result.Should()
            .BeRedirectToActionResult()
            .WithActionName("Index")
            .WithControllerName("CourseDelegates")
            .WithRouteValue("customisationId", CustomisationId.ToString());
        }
コード例 #5
0
        public IActionResult ConfirmRemoveFromCourse(
            int progressId,
            DelegateAccessRoute accessedVia,
            ReturnPageQuery?returnPageQuery = null
            )
        {
            var progress = progressService.GetDetailedCourseProgress(progressId);

            if (!courseService.DelegateHasCurrentProgress(progressId) || progress == null)
            {
                return(new NotFoundResult());
            }

            var model = new RemoveFromCourseViewModel(
                progress,
                false,
                accessedVia,
                returnPageQuery
                );

            return(View(model));
        }
コード例 #6
0
        public IActionResult ExecuteRemoveFromCourse(
            int delegateId,
            int customisationId,
            RemoveFromCourseViewModel model
            )
        {
            if (!ModelState.IsValid)
            {
                return(View("ConfirmRemoveFromCourse", model));
            }

            if (!courseService.DelegateHasCurrentProgress(delegateId, customisationId))
            {
                return(new NotFoundResult());
            }

            courseService.RemoveDelegateFromCourse(
                delegateId,
                customisationId,
                RemovalMethod.RemovedByAdmin
                );

            return(RedirectToAction("Index", new { delegateId }));
        }