Exemplo n.º 1
0
        public IActionResult Index(AdminRolesFormData formData, int delegateId)
        {
            try
            {
                registrationService.PromoteDelegateToAdmin(
                    formData.GetAdminRoles(),
                    formData.LearningCategory,
                    delegateId
                    );
            }
            catch (AdminCreationFailedException e)
            {
                logger.LogError(e, "Error creating admin account for promoted delegate");
                var error = e.Error;

                if (error.Equals(AdminCreationError.UnexpectedError))
                {
                    return(new StatusCodeResult(500));
                }

                if (error.Equals(AdminCreationError.EmailAlreadyInUse))
                {
                    return(View("EmailInUse", delegateId));
                }

                return(new StatusCodeResult(500));
            }

            return(RedirectToAction("Index", "ViewDelegate", new { delegateId }));
        }
Exemplo n.º 2
0
        public IActionResult EditAdminRoles(AdminRolesFormData formData, int adminId)
        {
            userService.UpdateAdminUserPermissions(
                adminId,
                formData.GetAdminRoles(),
                formData.LearningCategory
                );

            return(RedirectToAction("Index"));
        }
        public IActionResult EditAdminRoles(AdminRolesFormData model, int adminId)
        {
            userService.UpdateAdminUserPermissions(
                adminId,
                model.GetAdminRoles(),
                model.LearningCategory
                );

            return(RedirectToAction(
                       "Index",
                       "Administrator",
                       model.ReturnPageQuery.ToRouteDataDictionary(),
                       model.ReturnPageQuery.ItemIdToReturnTo
                       ));
        }
Exemplo n.º 4
0
        public void Summary_post_returns_500_error_with_unexpected_register_error()
        {
            // Given
            var formData = new AdminRolesFormData
            {
                IsCentreAdmin         = true,
                IsSupervisor          = false,
                IsTrainer             = false,
                IsContentCreator      = false,
                ContentManagementRole = ContentManagementRole.NoContentManagementRole,
                LearningCategory      = 0
            };

            A.CallTo(() => registrationService.PromoteDelegateToAdmin(A <AdminRoles> ._, A <int> ._, A <int> ._))
            .Throws(new AdminCreationFailedException(AdminCreationError.UnexpectedError));

            // When
            var result = controller.Index(formData, 1);

            // Then
            result.Should().BeStatusCodeResult().WithStatusCode(500);
        }
Exemplo n.º 5
0
        public void Summary_post_returns_redirect_to_index_with_email_in_use_register_error()
        {
            // Given
            var formData = new AdminRolesFormData
            {
                IsCentreAdmin         = true,
                IsSupervisor          = false,
                IsTrainer             = false,
                IsContentCreator      = false,
                ContentManagementRole = ContentManagementRole.NoContentManagementRole,
                LearningCategory      = 0
            };

            A.CallTo(() => registrationService.PromoteDelegateToAdmin(A <AdminRoles> ._, A <int> ._, A <int> ._))
            .Throws(new AdminCreationFailedException(AdminCreationError.EmailAlreadyInUse));

            // When
            var result = controller.Index(formData, 1);

            // Then
            result.Should().BeViewResult().WithViewName("EmailInUse");
        }
Exemplo n.º 6
0
        public void Summary_post_registers_delegate_with_expected_values()
        {
            // Given
            const int delegateId = 1;
            var       formData   = new AdminRolesFormData
            {
                IsCentreAdmin         = true,
                IsSupervisor          = false,
                IsTrainer             = false,
                IsContentCreator      = false,
                ContentManagementRole = ContentManagementRole.NoContentManagementRole,
                LearningCategory      = 0
            };

            A.CallTo(() => registrationService.PromoteDelegateToAdmin(A <AdminRoles> ._, A <int> ._, A <int> ._))
            .DoesNothing();

            // When
            var result = controller.Index(formData, delegateId);

            // Then
            A.CallTo(
                () =>
                registrationService.PromoteDelegateToAdmin(
                    A <AdminRoles> .That.Matches(
                        a =>
                        a.IsCentreAdmin &&
                        !a.IsContentManager
                        ),
                    0,
                    delegateId
                    )
                )
            .MustHaveHappened();
            result.Should().BeRedirectToActionResult().WithControllerName("ViewDelegate").WithActionName("Index");
        }