public ClienteController(GerenciarEmail gerenciarEmail, IRecuperacaoSenhaRepository recuperacaoSenhaRepository, LoginCliente loginCliente, IClienteRepository clienteRepository, IMapper mapper) { _loginCliente = loginCliente; _clienteRepository = clienteRepository; _mapper = mapper; _recuperacaoSenhaRepository = recuperacaoSenhaRepository; _gerenciarEmail = gerenciarEmail; }
public IHttpActionResult RecuperarSenha(String email, String ip) { try { if (String.IsNullOrEmpty(email)) { return(Json(new { erro = "S", mensagem = "O e-mail é um campo obrigatório para recuperação de senha." })); } IUsuarioRepository repository = container.Resolve <IUsuarioRepository>(); var usuario = repository.ObterPeloEmail(email); if (usuario != null) { if (!String.IsNullOrEmpty(usuario.Ativo) && usuario.Ativo == "N") { return(Json(new { erro = "S", mensagem = "Este usuário está bloqueado e não pode alterar sua senha, para mais detalhes entre em contato com o suporte." })); } IRecuperacaoSenhaRepository recuperaRepository = container.Resolve <IRecuperacaoSenhaRepository>(); var recupera = new RecuperacaoSenha(); recupera.Email = email; recupera.Data = DateTime.Now; recupera.Chave = Guid.NewGuid().ToString(); recupera.IP = ip; recupera.Status = 0; recuperaRepository.Save(recupera); StringBuilder mensagem = new StringBuilder(); mensagem.Append("Nós recebemos uma solicitação de recuperação de senha do seu e-mail no <br><br>"); mensagem.Append(String.Format("IP: {0} <br><br>", ip)); mensagem.Append(String.Format(@"Para criar uma nova senha clique <a href=""https://xpto.com/recuperarsenha.php?key={0}"" target=""_blank"">aqui</a>", recupera.Chave)); //Envia e-mail em uma nova task Task.Run(() => { container.Resolve <IEmailService>().EnviarEmail(email, Constantes.EMAIL_REMETENTE, "Suporte ", "Recuperação de senha - Super x", mensagem.ToString(), true); }); } return(Json(new { erro = "N", mensagem = "Processo realizado com sucesso! Caso este e-mail esteja cadastrado vocé irá receber um link para mudar a senha em seu e-mail." })); } catch (Exception ex) { container.Resolve <ErroSistemaCRUDService>().Salvar(ex); String mensagem = !String.IsNullOrEmpty(ex.Message) ? ex.Message : String.Empty; String mensagemInterna = ex.InnerException != null && String.IsNullOrEmpty(ex.InnerException.Message) ? ex.InnerException.Message : String.Empty; String assunto = "Erro na API de Recuperação de senha de usuário"; String mensagem2 = String.Format("Exceção: {0} \n Exceção interna: {1}, \n Data/Hora: {2} \n Email: {3}: ", mensagem, mensagemInterna, DateTime.Now, email); container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false); return(Json(new { erro = "S", mensagem = "Ocorreu um erro inesperado ao tentar recuperar sua senha , não se preocupe, o suporte já foi acionado e vai resolver o problema e te informar assim que for verificado." })); } }
public HomeController(IPedidoRepository pedidoRepository, IProdutoRepository produtoRepository, INewsletterRepository newsletterRepository, IClienteRepository clienteRepository, GerenciarEmail email, IRecuperacaoSenhaRepository recuperacaoSenhaRepository, IColaboradorRepository colaboradorRepository, LoginColaborador loginColaborador) { _clienteRepository = clienteRepository; _colaboradorRepository = colaboradorRepository; _loginColaborador = loginColaborador; _newsletterRepository = newsletterRepository; _recuperacaoSenhaRepository = recuperacaoSenhaRepository; _pedidoRepository = pedidoRepository; _email = email; _produtoRepository = produtoRepository; }
public ColaboradoresController(IRecuperacaoSenhaRepository recuperacaoSenhaRepository, IColaboradorRepository colaboradorRepository, GerenciarEmail gerenciarEmail) { _email = gerenciarEmail; _colaboradorRepository = colaboradorRepository; _recuperacaoSenhaRepository = recuperacaoSenhaRepository; }