public ActionResult Index(ForgotPassModel model)
 {
     if (ModelState.IsValid)
     {
         var dao = new UserDao();
         if (dao.CheckUsername(model.Username) && dao.CheckEmail(model.Gmail))
         {
             var user = dao.GetUserName(model.Username);
             if (user.Username == model.Username && user.Email == model.Gmail)
             {
                 string code = CodeChangePass(6);
                 user.Code = code;
                 dao.Update(user);
                 string content = System.IO.File.ReadAllText(Server.MapPath("/assets/net/template/newCode.html"));
                 content = content.Replace("{{Code}}", code);
                 new MailHelper().SendEmail(model.Gmail, "code to change the password", content);
                 return(Redirect("/ResetPassword/Index"));
             }
             else
             {
                 ModelState.AddModelError("", "Email hoặc Username không đúng");
             }
         }
         else
         {
             ModelState.AddModelError("", "Email hoặc Username không đúng");
         }
     }
     return(View(model));
 }
        public IActionResult ForgotPassword([FromBody] ForgotPassModel model)
        {
            //find the user
            try
            {
                User user = _userService.GetByEmail(model.Email);
                //generate a random password for him
                String newPassword = _userService.RandomPassword();
                //update user info
                _userService.Update(user, newPassword);

                MailMessage mail       = new MailMessage();
                SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("email");
                mail.To.Add(user.Email);
                mail.Subject = "New password";
                mail.Body    = $"Here is your new password: {newPassword}\n\n Please change it as soon as you log in!\n\n";

                SmtpServer.Port        = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("email", "password");
                SmtpServer.EnableSsl   = true;

                SmtpServer.Send(mail);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(new { ex.Message }));
            }
        }