Пример #1
0
        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));
                }
            }
        }
Пример #2
0
        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()));
        }
Пример #3
0
        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));
            }
        }