Esempio n. 1
0
        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("/"));
        }
Esempio n. 2
0
        public ActionResult ChangeMailAddress([FromQuery] string authorizationCode)
        {
            var viewModel = new ChangeMailAddressViewModel
            {
                AuthorizationCode = authorizationCode
            };

            return(this.View(viewModel));
        }