public async Task <AuthResponse> ConfirmChangeEmail(ConfirmChangeEmailRequestModel model, string currentEmail) { AuthUser user = await this.userManager.FindByEmailAsync(currentEmail); if (user == null) { return(ValidationResponseFactory <AuthResponse> .FailureAuthResponse("User not found", AuthErrorCodes.UserDoesNotExist)); } else { IdentityResult result = await this.userManager.ChangeEmailAsync(user, user.NewEmail, System.Net.WebUtility.UrlDecode(model.Token)); if (result.Succeeded) { user.NewEmail = string.Empty; var updateResult = await this.userManager.UpdateAsync(user); if (updateResult.Succeeded) { return(ValidationResponseFactory <AuthResponse> .SuccessAuthResponse()); } else { return(ValidationResponseFactory <AuthResponse> .FailureAuthResponse(updateResult, AuthErrorCodes.UnableToUpdateUser)); } } else { return(ValidationResponseFactory <AuthResponse> .FailureAuthResponse(result, AuthErrorCodes.UnableToChangeEmail)); } } }
public virtual async Task <AuthResponse> ConfirmChangeEmail(ConfirmChangeEmailRequestModel model, CancellationToken cancellationToken = default(CancellationToken)) { HttpResponseMessage httpResponse = await this.Client.PostAsJsonAsync($"api/auth/confirmchangeemail", model, cancellationToken).ConfigureAwait(false); this.HandleResponseCode(httpResponse); return(JsonConvert.DeserializeObject <AuthResponse>(httpResponse.Content.ContentToString())); }
public virtual async Task <IActionResult> ConfirmChangeEmail([FromBody] ConfirmChangeEmailRequestModel model) { AuthResponse result = await this.authService.ConfirmChangeEmail(model, this.User.Claims.First(x => x.Type == ClaimTypes.Email).Value); if (result.Success) { return(this.Ok(result)); } else { return(this.StatusCode(StatusCodes.Status400BadRequest, result)); } }