public ActionResult ResetPasswordConfirmation(string Id)
 {
     ResetPasswordConfirmationViewModel model = new ResetPasswordConfirmationViewModel() { resetPasswordToken = Id };
     return View(model);
 }
        public ActionResult ResetPasswordConfirmation(ResetPasswordConfirmationViewModel model)
        {
            if (WebSecurity.ResetPassword(model.resetPasswordToken, model.password))

            {
                return RedirectToAction("PasswordResetSuccess", "Account");
            }
            return RedirectToAction("PasswordResetFailure", "Account");
        }
        public ActionResult ForgotPassword(ResetPasswordConfirmationViewModel model)
        {
            //check user existance
            var userNameExists = WebSecurity.UserExists(model.UserName);
            if (!userNameExists)
            {
                ViewBag.message = "User Name does not exist.";
            }
            else
            {
                ViewBag.message = "An error occured.  Please try again later.";
            }
            if (userNameExists)
            {
                try
                {

                    string emailAddress = (from u in db.UserProfiles
                                           where u.UserName == model.UserName
                                           select u.EmailAddress).FirstOrDefault();

                    ViewBag.message = null;
                    //generate password token
                    var passwordToken = WebSecurity.GeneratePasswordResetToken(model.UserName);
                    //Generate email
                    dynamic email = new Email("ForgotPasswordEmail");
                    email.To = emailAddress;
                    email.UserName = model.UserName;
                    email.PasswordResetToken = passwordToken;
                    email.Send();

                    return RedirectToAction("PasswordSent", "Account");

                }
                catch (Exception ex)
                {

                    ViewBag.message = ex.Message;

                }
            }

            // If we got this far, something failed, redisplay form

            return View();
        }