public async Task <ActionResult> ConfirmEmail(string userId, string code) { if (userId == null || code == null) { return(View("Error")); } var user = await _usersRepository.Get(userId); var roleExists = await _rolesRepository.RoleExists(RoleConstants.SuperAdminRole); if (!roleExists) { var roleResult = await _rolesRepository.CreateAdministrationRoles(); if (!roleResult.Succeeded) { AddErrors(new IdentityResult("Admin roles could not be created")); throw (new Exception(ViewResource.ConfirmEmailError)); } var addToRoleResult = await _usersRepository.AddToRoles(user, RoleConstants.SuperAdminRole); if (!addToRoleResult.Succeeded) { AddErrors(new IdentityResult("User could not be added to Admin role")); throw (new Exception(ViewResource.ConfirmEmailError)); } } var userAuthorized = await UserManager.AuthorizeAdminUser(user.Id); if (!userAuthorized) { throw (new Exception(ViewResource.ErrorAccessDenied)); } var result = await UserManager.ConfirmEmailAsync(userId, code); if (result.Succeeded) { return(View("ConfirmEmail")); } else { throw (new Exception(ViewResource.ConfirmEmailError)); } }