public async Task <ActionResult> ChangeMailAddress([Bind("AuthorizationCode", "MailAddress")] ChangeMailAddressViewModel viewModel) { if (!this.ModelState.IsValid) { return(this.View(viewModel)); } var normalizedMailAddress = userManager.NormalizeEmail(viewModel.MailAddress); var duplicatedMailAddress = await userManager.FindByEmailAsync(normalizedMailAddress); if (duplicatedMailAddress != null) { viewModel.IsDuplicated = true; return(this.View(viewModel)); } // teamsの更新 var authorizationLink = await this.accountsUseCase.GetAuthorizationLinkByCode(viewModel.AuthorizationCode); var deserializedTeamCode = authorizationLink.UniqueKey; var originalMailAddress = await this.accountsUseCase.UpdateTeamMailAddress(deserializedTeamCode, viewModel.MailAddress); // AspNetUserの更新 var user = await userManager.FindByEmailAsync(userManager.NormalizeEmail(originalMailAddress)); user.Email = viewModel.MailAddress; await userManager.UpdateAsync(user); // 登録完了通知メールの送信 await this.accountsUseCase.SendChangeMailAddressMail(viewModel.MailAddress); return(this.Redirect("/")); }
public ActionResult ChangeMailAddress([FromQuery] string authorizationCode) { var viewModel = new ChangeMailAddressViewModel { AuthorizationCode = authorizationCode }; return(this.View(viewModel)); }