예제 #1
0
        public async Task <Resposta <Usuario> > Handle(CriarUsuarioComando request, CancellationToken cancellationToken)
        {
            var erros = _validador.Validar(request);

            if (!string.IsNullOrEmpty(erros))
            {
                return(new Resposta <Usuario>(erros));
            }

            var usuario = new Usuario
            {
                Ativo        = request.Ativo,
                Email        = request.Email,
                Foto         = request.Foto,
                Login        = request.Login,
                Nome         = request.Nome,
                PerfilCodigo = request.PerfilCodigo,
                Telefone     = request.Telefone,
                CursoCodigo  = request.CursoCodigo
            };

            string senha = SenhaHelper.Gerar();

            usuario.Senha = senha.ToMD5();

            await EnviarEmailConfirmacaoCadastro(usuario.Email, usuario.Login, senha);

            var usuarioCadastrado = await _repositorio.Criar(usuario);

            return(new Resposta <Usuario>(usuarioCadastrado));
        }
예제 #2
0
        public bool ValidarSenha(Usuario usuario)
        {
            var usuarioRepositorio = _uow.Repositorio <IUsuarioRepository>();

            var hash = UsuarioExiste(usuarioRepositorio, usuario.ID).Senha;

            return(SenhaHelper.HashValida(usuario.Senha, hash));
        }
예제 #3
0
        public void MudarSenha(Usuario usuario)
        {
            var user = _usuarioRepositorio.Obter(usuario.Id_Usuario);

            if (user != null)
            {
                user.Senha = SenhaHelper.GerarHash(usuario.Senha);
                _usuarioRepositorio.SalvarModificacoes(user);
            }
        }
예제 #4
0
        public void Inserir(Usuario usuario)
        {
            var usuarioRepositorio = _uow.Repositorio <IUsuarioRepository>();
            var jaExiste           = _uow.Repositorio <IUsuarioRepository>().Unique(u => u.Email == usuario.Email) != null;

            if (jaExiste)
            {
                throw new Exception(UsuarioDuplicado);
            }

            usuario.Senha = SenhaHelper.CriarHash(usuario.Senha);

            usuarioRepositorio.Insert(usuario);
        }
예제 #5
0
        public void Editar(Usuario usuario)
        {
            var usuarioRepositorio = _uow.Repositorio <IUsuarioRepository>();

            var usuarioNoBanco = UsuarioExiste(usuarioRepositorio, usuario.ID);

            // Checar se existe algum outro usuário com o e-mail editado
            var jaExiste = usuarioRepositorio.Unique(u => u.Email == usuario.Email && u.ID != usuario.ID) != null;

            if (jaExiste)
            {
                throw new Exception(UsuarioDuplicado);
            }

            usuario.Senha = SenhaHelper.CriarHash(usuario.Senha);

            EntityHelper.TransferirPropriedades(usuario, usuarioNoBanco);

            usuarioRepositorio.Update(usuarioNoBanco);
        }
        protected override void ExecutarValidacoes()
        {
            if (string.IsNullOrEmpty(Senha))
            {
                AdicionarErroCampoObrigatorio(nameof(Senha));
            }

            if (string.IsNullOrEmpty(ConfirmacaoSenha))
            {
                AdicionarErroCampoObrigatorio(nameof(ConfirmacaoSenha));
            }

            if (!string.IsNullOrEmpty(Senha) && !SenhaHelper.Validar(Senha))
            {
                AdicionarErroCampoInvalido("A senha deve ter pelo menos 6 caracteres, 1 letra, 1 número e um caracter especial.");
            }

            if (!string.IsNullOrEmpty(Senha) && Senha != ConfirmacaoSenha)
            {
                AdicionarErroCampoInvalido("A senha e a confirmação não conferem.");
            }
        }
예제 #7
0
        public async Task<Resposta<string>> Handle(RedefinirSenhaComando request, CancellationToken cancellationToken)
        {

            var erros = _validador.Validar(request);

            if (!string.IsNullOrEmpty(erros))
                return new Resposta<string>(null, erros);

            var email = request.Email;
            var usuario = await _repositorio.Consultar(lnq => lnq.Email.Equals(email));

            string senha = SenhaHelper.Gerar();
            usuario.Senha = senha.ToMD5();
            await _repositorio.Atualizar(usuario);

            string mensagem = mensagem = $@"Sua senha no SGH foi redefinida com sucesso! <br>
                                Usuário: {usuario.Login}<br>
                                Senha: {senha}<br>
                                click <a>aqui</a> para acessar o sistema.";

            await _emailService.Enviar(usuario.Email, "Redefinição de senha no SGH", mensagem);

            return new Resposta<string>("Senha redefinida com sucesso! Foi enviado um e-mail com seus dados de acesso.", "");
        }
예제 #8
0
 public void Incluir(Usuario usuario)
 {
     usuario.Senha = SenhaHelper.GerarHash(usuario.Senha);
     _usuarioRepositorio.InserirNovo(usuario);
 }
예제 #9
0
        public Usuario Autenticacao(string login, string senha)
        {
            string hash = SenhaHelper.GerarHash(senha);

            return(_usuarioRepositorio.Login(login, hash));
        }
예제 #10
0
        protected override void ExecutarValidacoes()
        {
            if (string.IsNullOrEmpty(Nome))
            {
                AdicionarErroCampoObrigatorio(nameof(Nome));
            }

            if (!string.IsNullOrEmpty(Email) && !EmailHelper.Validar(Email))
            {
                AdicionarErroCampoInvalido(nameof(Email));
            }

            if (string.IsNullOrEmpty(Senha))
            {
                AdicionarErroCampoObrigatorio(nameof(Senha));
            }

            if (string.IsNullOrEmpty(ConfirmacaoSenha))
            {
                AdicionarErroCampoObrigatorio(nameof(ConfirmacaoSenha));
            }

            if (DateTime.MinValue == DataNascimento || DataNascimento > DateTime.Now)
            {
                AdicionarErroCampoInvalido("Informe uma data válida e menor que a data atual.");
            }

            if (string.IsNullOrEmpty(Endereco?.Cep))
            {
                AdicionarErroCampoObrigatorio("Cep");
            }

            if (string.IsNullOrEmpty(Endereco?.Estado))
            {
                AdicionarErroCampoObrigatorio("Estado");
            }

            if (string.IsNullOrEmpty(Endereco?.Cidade))
            {
                AdicionarErroCampoObrigatorio("Cidade");
            }

            if (string.IsNullOrEmpty(Endereco?.Bairro))
            {
                AdicionarErroCampoObrigatorio("Bairro");
            }

            if (string.IsNullOrEmpty(Endereco?.Logradouro))
            {
                AdicionarErroCampoObrigatorio("Logradouro");
            }

            if (string.IsNullOrEmpty(Endereco?.Numero))
            {
                AdicionarErroCampoObrigatorio("Número");
            }

            if (string.IsNullOrEmpty(Tipo))
            {
                AdicionarErroCampoObrigatorio(nameof(Tipo));
            }

            if (CausasInteresse == null)
            {
                AdicionarErroCampoObrigatorio("Causa de Interesse");
            }

            if (Tipo != "INSTITUICAO" && Tipo != "VOLUNTARIO")
            {
                AdicionarErroCampoInvalido("Informe VOLUNTARIO ou INSTITUICAO no tipo.");
            }

            if (!string.IsNullOrEmpty(Senha) && !SenhaHelper.Validar(Senha))
            {
                AdicionarErroCampoInvalido("A senha deve ter pelo menos 6 caracteres, 1 letra, 1 número e um caracter especial.");
            }

            if (Senha != ConfirmacaoSenha)
            {
                AdicionarErroCampoInvalido("A senha e a confirmação não conferem.");
            }

            if (!string.IsNullOrEmpty(Nome) && Nome.Length > 100)
            {
                AdicionarErroCampoInvalido("O nome deve ter no máximo 100 caracteres.");
            }

            if (!string.IsNullOrEmpty(Email) && Email.Length > 50)
            {
                AdicionarErroCampoInvalido("O nome deve ter no máximo 50 caracteres.");
            }
        }