public virtual ActionResult Index(ForgottenPasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return PartialView(MVC.ForgottenPassword.Views._Index, model);
            }

            bool isEmailExist = _userService.ExistsByEmail(model.Email);

            if (isEmailExist)
            {
                User selecteduser = _userService.GetUserByEmail(model.Email);
                string key = Guid.NewGuid().ToString();
                var newRequestTicket = new ForgottenPassword
                {
                    User = selecteduser,
                    Key = key,
                    ResetDateTime = DateAndTime.GetDateTime()
                };

                _forgttenPasswordService.Add(newRequestTicket);

                if (_emailService.SendResetPasswordConfirmationEmail(selecteduser.UserName, model.Email, key)
                     == SendingMailResult.Successful)
                {
                    _uow.SaveChanges();
                }
                else
                {
                    return Json(new
                    {
                        result = "true",
                        message = "متاسفانه خطایی در ارسال ایمیل رخ داده است."
                    });
                }

                return Json(new
                {
                    result = "true",
                    message = "ایمیلی برای تایید بازنشانی کلمه عبور برای شما ارسال شد.اعتبارایمیل ارسالی 24 ساعت است."
                });
            }

            return Json(new
            {
                result = "false",
                message = "این ایمیل در سیستم ثبت نشده است"
            });
        }
 public void Add(ForgottenPassword model)
 {
     _forgottenPasswords.Add(model);
 }