示例#1
0
 public ClienteController(GerenciarEmail gerenciarEmail, IRecuperacaoSenhaRepository recuperacaoSenhaRepository, LoginCliente loginCliente, IClienteRepository clienteRepository, IMapper mapper)
 {
     _loginCliente               = loginCliente;
     _clienteRepository          = clienteRepository;
     _mapper                     = mapper;
     _recuperacaoSenhaRepository = recuperacaoSenhaRepository;
     _gerenciarEmail             = gerenciarEmail;
 }
示例#2
0
        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;
 }
示例#4
0
 public ColaboradoresController(IRecuperacaoSenhaRepository recuperacaoSenhaRepository, IColaboradorRepository colaboradorRepository, GerenciarEmail gerenciarEmail)
 {
     _email = gerenciarEmail;
     _colaboradorRepository      = colaboradorRepository;
     _recuperacaoSenhaRepository = recuperacaoSenhaRepository;
 }