public async Task <IActionResult> UpdateLogin([FromBody] ChangeLoginRequest model) { var user = await _userManager.FindByIdAsync(CurrentUserId.ToString()); if (user == null) { return(Unauthorized()); } var hasPassword = await _userManager.HasPasswordAsync(user); if (hasPassword) { var changePasswordResult = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (!changePasswordResult.Succeeded) { return(BadRequest()); } } else { var createPasswordResult = await _userManager.AddPasswordAsync(user, model.NewPassword); if (!createPasswordResult.Succeeded) { return(BadRequest()); } } if (!string.IsNullOrWhiteSpace(model.Username) && model.Username != user.UserName) { var setUsernameResult = await _userManager.SetUserNameAsync(user, model.Username); if (!setUsernameResult.Succeeded) { return(BadRequest()); } } return(Ok()); }
public async Task <ActionResult <AccountSettingsChangeResponse> > ChangeLogin([FromBody] ChangeLoginRequest request) { var(email, _) = HttpContext.ParseCredentials(); if (email is null) { return(new BadRequestObjectResult(new AccountSettingsChangeResponse { Email = "Not found", Operation = "SignIn changing", Successful = false, Error = "Token not valid. Email address not found" })); } var result = await _settingsService.ChangeLoginToAsync(email, request.NewLogin); return(new AccountSettingsChangeResponse { Email = email, Operation = "SignIn changing", Successful = result }); }