public ActionResult RedefinirSenha(string Senha, string ConfirmarSenha)
        {
            try
            {
                if (Senha == ConfirmarSenha)
                {
                    PassarMensagem error = TempData["error"] as PassarMensagem;
                    int            id    = error.Codigo;
                    Cliente        cli   = db.Clientes.Where(c => c.Id == id).SingleOrDefault();

                    if (cli != null)
                    {
                        LoginCliente log = db.LoginClientes.Where(d => d.ClienteId == id).SingleOrDefault();
                        if (log != null)
                        {
                            log.Senha = Senha;
                            string        codigo = error.CodigoVerdadeiro;
                            CodigoCliente cod    = db.CodigosClientes.Where(d => d.Codigo == codigo).SingleOrDefault();
                            db.CodigosClientes.Remove(cod);
                            db.SaveChanges();
                            return(RedirectToAction("Login"));
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Senhas não conferem");
                }
            }
            catch (Exception e) { ModelState.AddModelError("", "Confira os dados e tente novamente"); }
            return(View());
        }
        public ActionResult EnviarEmail()
        {
            try
            {
                PassarMensagem error = TempData["error"] as PassarMensagem;
                ViewData["ErrorMensagem"] = error.ErrorMessage;
                ViewData["Codigo"]        = error.Codigo;
                string email  = error.ErrorMessage;
                int    id     = error.Codigo;
                string codigo = error.CodigoVerdadeiro;

                string assunto = "Este e seu código para redifinição de senha: " + codigo;

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

                mail.From = new MailAddress("*****@*****.**");
                mail.To.Add(email);
                mail.Subject = assunto;

                smtp.Port = 587;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "suporteadm");
                smtp.EnableSsl             = true;
                smtp.Send(mail);
                return(RedirectToAction("VerificarCodigo"));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }
        public ActionResult CadastrarCodigo(CodigoCliente codCliente)
        {
            Random         rdn    = new Random();
            int            codigo = rdn.Next(100000, 999999);
            PassarMensagem error  = TempData["error"] as PassarMensagem;

            ViewData["ErrorMensagem"] = error.ErrorMessage;
            ViewData["Codigo"]        = error.Codigo;
            error.CodigoVerdadeiro    = Convert.ToString(codigo);
            codCliente.Email          = error.ErrorMessage;
            codCliente.Id_Usuario     = error.Codigo;
            codCliente.Codigo         = Convert.ToString(codigo);


            if (ModelState.IsValid)
            {
                db.CodigosClientes.Add(codCliente);
                db.SaveChangesAsync();
                return(RedirectToAction("EnviarEmail"));
            }
            return(View());
        }
        public ActionResult EmailCliente(string email)
        {
            try
            {
                Cliente cli = db.Clientes.Where(c => c.Email == email).SingleOrDefault();

                if (cli != null)
                {
                    PassarMensagem error = new PassarMensagem();
                    error.ErrorMessage = email;
                    error.Codigo       = cli.Id;
                    TempData["Error"]  = error;

                    return(RedirectToAction("CadastrarCodigo"));
                }
                else
                {
                    ModelState.AddModelError("", "Email Invalido");
                }
            }
            catch (Exception e) { ModelState.AddModelError("", "Confira os dados e tente novamente"); }

            return(View());
        }