Esempio n. 1
0
        public async Task <ActionResult> VerifyEmailRequest()
        {
            var userId = User.Id;

            //
            if (await _adminUserManager.IsEmailConfirmedAsync(userId))
            {
                return(RedirectToAction(nameof(VerifyEmail), new { status = AccountActionStatus.VerifyEmailResponseSuccess.ToLowerCaseString() }));
            }

            //
            var adminUser = await _adminUserManager.FindByIdAsync(userId);

            var mailModel = new AccountVerifyEmailMessageViewModel()
            {
                Name             = adminUser.FullName ?? adminUser.UserName,
                PageTitle        = GetLocalizedString("Users_VerifyEmailTitle"),
                ConfirmationLink = Url.Action("VerifyEmailResponse", "Account", new
                {
                    verifyToken = await _adminUserManager.GenerateEmailConfirmationTokenAsync(adminUser.Id)
                }, protocol: Request.Url.Scheme)
            };

            var subject = $"[{GetLocalizedString("_App_Name")}] {mailModel.PageTitle}";
            var message = RenderViewToString("VerifyEmailMessage", model: mailModel);

            _emailDispatcherService.Dispatch(message, subject, new MailAddress(adminUser.Email, adminUser.FullName));

            return(RedirectToAction(nameof(VerifyEmail), new { status = AccountActionStatus.VerifyEmailRequestSent.ToLowerCaseString() }));
        }