Пример #1
0
        /// <summary>
        ///     Send a new email confirmation to the user.
        /// </summary>
        /// <param name="emailConfReqVm">View model that contains the email information where we need to send the confirmation to.</param>
        public async Task <StggResult> RequestEmailConfirmationTokenAsync(EmailConfirmRequestVm emailConfReqVm)
        {
            // Gather information about the user and generate the email confirmation token.
            var stggResult = new StggResult();
            var user       = await AppUserManager.FindByEmailAsync(emailConfReqVm.Email);

            // Throw exception if the user was not found.
            if (user == null)
            {
                stggResult.AddError("Invalid email confirmation parameter.");
                return(stggResult);
            }

            var token = await AppUserManager.GenerateEmailConfirmationTokenAsync(user.Id);

            stggResult.SetValue(!string.IsNullOrEmpty(token));

            return(stggResult);
        }
        public async Task <ActionResult> EmailConfirmRequest(EmailConfirmRequestVm emailConfReqVm)
        {
            var result = View(emailConfReqVm);

            if (ModelState.IsValid)
            {
                var stggResult = await Managers.UserAccountManager.RequestEmailConfirmationTokenAsync(emailConfReqVm);

                if (stggResult.Status == StggResultStatus.Succeeded)
                {
                    return(RedirectToAction("EmailConfirmTokenSent"));
                }
                else
                {
                    return(RedirectToAction("Status", "Error", new { @id = 500 }));
                }
            }

            return(result);
        }