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 })); }
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 )); }
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); }
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"); }
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"); }