public async Task <IActionResult> ChangeEmailAddress([FromBody] UpdateEmailAddressViewModel model) { if (ModelState.IsValid) { var users = await _userManager.Users.Where(u => u.Email == model.OldEmailAddress || u.Email == model.NewEmailAddress).ToListAsync(); if (users.Count > 1) { return(BadRequest(Constants.Errors.DuplicateEmailAddressError)); } var user = users.FirstOrDefault(); if (user != null && user.Email != model.NewEmailAddress) { var code = await _userManager.GenerateChangeEmailTokenAsync(user, model.NewEmailAddress); var callbackUrl = Url.Action(nameof(ConfirmChangeEmail), "Account", new { userId = user.Id, newEmail = model.NewEmailAddress, code }, HttpContext.Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.NewEmailAddress, callbackUrl, false); return(Ok()); } return(NotFound(Constants.Errors.UserNotFoundError)); } // If we got this far, something failed. return(BadRequest(Constants.Errors.InvalidInput)); }
public UpdateAddressMailPage(Addresses addresses) { InitializeComponent(); var viewModel = new UpdateEmailAddressViewModel(); viewModel.Addresses = addresses; BindingContext = viewModel; }