Exemplo n.º 1
0
        public async Task EnviarEmailSolicitacaoRecuperacaoSenha(TokenRecuperacaoSenha tokenRecuperacaoSenha)
        {
            var email = new MensagemEmail()
                        .ComDestinatario(tokenRecuperacaoSenha.Usuario.Email)
                        .ComAssunto("Recuperação de senha")
                        .ComCorpoMensagem(TemplateEmailSolicitacaoRecuperacaoSenha(tokenRecuperacaoSenha));

            await _sender.Enviar(email);
        }
Exemplo n.º 2
0
        public TokenRecuperacaoSenhaBuilder APartir(TokenRecuperacaoSenha tokenRecuperacaoSenha)
        {
            _tokenRecuperacaoSenha.Id             = tokenRecuperacaoSenha.Id;
            _tokenRecuperacaoSenha.Token          = tokenRecuperacaoSenha.Token;
            _tokenRecuperacaoSenha.DataValidade   = tokenRecuperacaoSenha.DataValidade;
            _tokenRecuperacaoSenha.DataUtilizacao = tokenRecuperacaoSenha.DataUtilizacao;
            _tokenRecuperacaoSenha.Usuario        = tokenRecuperacaoSenha.Usuario;

            return(this);
        }
Exemplo n.º 3
0
        public void Utilizar(TokenRecuperacaoSenha tokenRecuperacaoSenha)
        {
            var conexao    = _gerenciadorConexao.ObterConexao();
            var parametros = new
            {
                IdUsuario = tokenRecuperacaoSenha.Usuario.Id,
                tokenRecuperacaoSenha.DataUtilizacao
            };

            conexao.Execute(UpdateTokenRecuperacaoSenha, parametros, _gerenciadorConexao.TransacaoAtiva);
        }
Exemplo n.º 4
0
        private static TokenRecuperacaoSenha MontarTokenRecuperacaoSenha(TokenRecuperacaoSenha tokenRecuperacaoSenha, Usuario usuario, PerfilUsuario perfilUsuario)
        {
            var usuarioComPerfil = new UsuarioBuilder()
                                   .APartir(usuario)
                                   .ComPerfilUsuario(perfilUsuario)
                                   .Construir();

            return(new TokenRecuperacaoSenhaBuilder()
                   .APartir(tokenRecuperacaoSenha)
                   .ComUsuario(usuarioComPerfil)
                   .Construir());
        }
Exemplo n.º 5
0
        public void Inserir(TokenRecuperacaoSenha tokenRecuperacaoSenha)
        {
            var conexao    = _gerenciadorConexao.ObterConexao();
            var parametros = new
            {
                IdUsuario = tokenRecuperacaoSenha.Usuario.Id,
                tokenRecuperacaoSenha.Token,
                tokenRecuperacaoSenha.DataValidade
            };

            conexao.Execute(InsertTokenRecuperacaoSenha, parametros, _gerenciadorConexao.TransacaoAtiva);
        }
        public void SolicitarRecuperacaoSenha(SolicitarRecuperacaoSenhaRequest request)
        {
            request.Validar();

            var usuario = _repositorioUsuario.Obter(request.Email);

            new ValidacaoUsuarioRecuperacaoSenha().Validar(usuario);
            var token = GerarTokenRecuperacaoSenhaUnico();

            var tokenRecuperacaoSenha = new TokenRecuperacaoSenha(usuario, token, 30);

            _repositorioTokenRecuperacaoSenha.Inserir(tokenRecuperacaoSenha);

            _servicoEnvioEmail.EnviarEmailSolicitacaoRecuperacaoSenha(tokenRecuperacaoSenha);
        }