예제 #1
0
 public IActionResult SalvarNovaSenha([FromForm] Models.Cliente cliente, int Chave)
 {
     ModelState.Remove("Nome");
     ModelState.Remove("Nascimento");
     ModelState.Remove("Sexo");
     ModelState.Remove("CPF");
     ModelState.Remove("Telefone");
     ModelState.Remove("Email");
     ModelState.Remove("CEP");
     ModelState.Remove("Rua");
     ModelState.Remove("Cidade");
     ModelState.Remove("Bairro");
     ModelState.Remove("Numero");
     ModelState.Remove("Estado");
     if (ModelState.IsValid)
     {
         DadosRecuperacaoSenha dados     = _recuperacaoSenhaRepository.ObterRegistro(a => a.Chave == Chave);
         Models.Cliente        clienteDB = _clienteRepository.ObterCliente((int)dados.ClienteId);
         clienteDB.Senha = cliente.Senha;
         _recuperacaoSenhaRepository.Excluir(dados.Id);
         _clienteRepository.Atualizar(clienteDB);
         TempData["MSG_S"] = "A nova senha foi salva com sucesso!";
         return(Redirect("/cliente/home/login"));
     }
     return(View());
 }
 public IActionResult RecuperarSenha([FromForm] Models.Colaborador colaborador)
 {
     ModelState.Remove("Email");
     Models.Colaborador colaboradorDB = _colaboradorRepository.ObterColaborador(a => a.Email == colaborador.Email);
     if (colaboradorDB != null)
     {
         try
         {
             DadosRecuperacaoSenha dados = new DadosRecuperacaoSenha();
             dados.ColaboradorId = colaboradorDB.Id;
             dados.Data          = DateTime.Now;
             int verificador = CriarVerificador(colaboradorDB.Id);
             dados.Chave = (verificador * 1000000 + new Random().Next(100000, 999999)) * 10 + colaboradorDB.Id % 10;
             _email.SendEmailRecuperarSenha(colaboradorDB, dados, false);
             _recuperacaoSenhaRepository.Cadastrar(dados);
             TempData["MSG_S"] = "E-mail enviado! Confira sua caixa de entrada";
             return(Redirect("/colaborador/home/login"));
         }
         catch
         {
             ViewData["MSG_E"] = "Oops! Houve um problema no sistema! Tente novamente";
         }
     }
     else
     {
         ViewData["MSG_E"] = "O e-mail não consta em nosso sistema!";
     }
     return(View());
 }
        public void Excluir(int id)
        {
            DadosRecuperacaoSenha dados = ObterRegistro(a => a.Id == id);

            _banco.RecuperacaoSenhas.Remove(dados);
            _banco.SaveChanges();
        }
예제 #4
0
        public IActionResult SalvarNovaSenha(int Chave)
        {
            DadosRecuperacaoSenha dados = _recuperacaoSenhaRepository.ObterRegistro(a => a.Chave == Chave);

            if (dados == null || dados.Data.AddDays(1) < DateTime.Now)
            {
                return(new StatusCodeResult(400));
            }
            return(View());
        }
 public IActionResult SalvarNovaSenha([FromForm] Models.Colaborador colaborador, int Chave)
 {
     ModelState.Remove("Email");
     if (ModelState.IsValid)
     {
         DadosRecuperacaoSenha dados         = _recuperacaoSenhaRepository.ObterRegistro(a => a.Chave == Chave);
         Models.Colaborador    colaboradorDB = _colaboradorRepository.ObterColaborador((int)dados.ColaboradorId);
         colaboradorDB.Senha = colaborador.Senha;
         _recuperacaoSenhaRepository.Excluir(dados.Id);
         _colaboradorRepository.Atualizar(colaboradorDB);
         TempData["MSG_S"] = "A nova senha foi salva com sucesso!";
         return(Redirect("/colaborador/home/login"));
     }
     return(View());
 }
예제 #6
0
 public IActionResult RecuperarSenha([FromForm] Models.Cliente cliente)
 {
     ModelState.Remove("Nome");
     ModelState.Remove("Nascimento");
     ModelState.Remove("Sexo");
     ModelState.Remove("CPF");
     ModelState.Remove("Telefone");
     ModelState.Remove("CEP");
     ModelState.Remove("Rua");
     ModelState.Remove("Cidade");
     ModelState.Remove("Bairro");
     ModelState.Remove("Numero");
     ModelState.Remove("Estado");
     ModelState.Remove("Senha");
     ModelState.Remove("ConfirmacaoSenha");
     if (ModelState.IsValid)
     {
         Models.Cliente clienteDB = _clienteRepository.ObterCliente(a => a.Email == cliente.Email);
         if (clienteDB != null)
         {
             try
             {
                 DadosRecuperacaoSenha dados = new DadosRecuperacaoSenha();
                 dados.ClienteId = clienteDB.Id;
                 dados.Data      = DateTime.Now;
                 int verificador = CriarVerificador(clienteDB.Id);
                 dados.Chave = (verificador * 1000000 + new Random().Next(100000, 999999)) * 10 + clienteDB.Id % 10;
                 _gerenciarEmail.SendEmailRecuperarSenha(clienteDB, dados);
                 _recuperacaoSenhaRepository.Cadastrar(dados);
                 TempData["MSG_S"] = "E-mail enviado! Confira sua caixa de entrada";
                 return(Redirect("/cliente/home/login"));
             }
             catch
             {
                 ViewData["MSG_E"] = "Oops! Houve um problema no sistema! Tente novamente";
             }
         }
         else
         {
             ViewData["MSG_E"] = "O e-mail não consta em nosso sistema!";
         }
     }
     return(View());
 }
예제 #7
0
        public void SendEmailRecuperarSenha(dynamic objeto, DadosRecuperacaoSenha dados, bool cliente = true)
        {
            string URL = _httpContextAccessor.HttpContext.Request.Scheme + "://" + _httpContextAccessor.HttpContext.Request.Host + "/" + (cliente?"cliente":"colaborador") + "/recuperarsenha/" + dados.Chave.ToString();

            MailMessage Msg = new MailMessage();

            Msg.From = new MailAddress(_conf.GetValue <string>("Email:Username"));
            Msg.To.Add(objeto.Email);
            Msg.Subject = "MultiMarket - Nova senha";
            Msg.Body    = string.Format(
                "<div style='text-align:center'>" +
                "<h1>Recuperar senha - MultiMarket<h1>" +
                "<h2>Olá {0}! </h2>" +
                "<p>A solicitação foi atendida com sucesso</p>" +
                "<a href='{1}'>Clique aqui</a> para criar uma nova senha" +
                "<p>*Esta é uma mensagem gerada automaticamente*</p>" +
                "<h3>Equipe MultiMarket</h3>" +
                "</div>", objeto.Nome, URL
                );
            Msg.IsBodyHtml = true;

            _smtp.Send(Msg);
        }
 public void Cadastrar(DadosRecuperacaoSenha dados)
 {
     _banco.RecuperacaoSenhas.Add(dados);
     _banco.SaveChanges();
 }
 public void Atualizar(DadosRecuperacaoSenha dados)
 {
     _banco.RecuperacaoSenhas.Update(dados);
     _banco.SaveChanges();
 }