public async Task <IActionResult> OnPostAsync(RegisterViewModel registerViewModel, [FromQuery] string code = "") { var userCode = _context.InvitationEntityModels.FirstOrDefault(t => t.Code == code); if (userCode == null) { return(BadRequest("Code invalid")); } if (!ModelState.IsValid) { return(BadRequest()); } var appUser = RoleHelper.CreateUser(userCode.Role); appUser.FirstName = registerViewModel.FirstName; appUser.LastName = registerViewModel.LastName; appUser.Email = userCode.Email; appUser.PhoneNumber = registerViewModel.Phone; appUser.UserName = registerViewModel.Username; var result = await _userManager.CreateAsync(appUser, registerViewModel.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); await _userManager.AddToRoleAsync(appUser, RoleHelper.GetRole(userCode.Role)); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = registerViewModel.Email })); } await _signInManager.SignInAsync(appUser, false); return(LocalRedirect(Url.Action("Index", "Home"))); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(BadRequest(ModelState)); }