Пример #1
0
        public void AutenticarUsuario(string email, string senha)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(email))
                {
                    throw new ApplicationValidationErrorsException("Digite o email.");
                }

                if (string.IsNullOrWhiteSpace(senha))
                {
                    throw new ApplicationValidationErrorsException("Digite a senha.");
                }

                var spec    = UsuarioSpecifications.ConsultaEmail(email);
                var usuario = _usuarioRepository.AllMatching(spec).SingleOrDefault();
                if (usuario == null)
                {
                    throw new ApplicationValidationErrorsException("Usuário não encontrado.");
                }

                if (usuario.Senha != senha)
                {
                    throw new ApplicationValidationErrorsException("Senha inválida.");
                }

                var adapter    = TypeAdapterFactory.CreateAdapter();
                var usuarioDTO = adapter.Adapt <Usuario, UsuarioDTO>(usuario);

                ControladorDeSessao.Autenticar(usuarioDTO);
            }
            catch (ApplicationValidationErrorsException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                LoggerFactory.CreateLog().LogError(ex);
                throw new Exception("O servidor não respondeu.");
            }
        }
        public void AutenticarUsuario(string nomeUsuario, string senha, bool continuarConectado)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(nomeUsuario))
                {
                    throw new AppException("Digite o nome de usuário.");
                }

                if (string.IsNullOrWhiteSpace(senha))
                {
                    throw new AppException("Digite a senha.");
                }

                var spec    = UsuarioSpecifications.ConsultaNomeUsuario(nomeUsuario);
                var usuario = _usuarioRepository.AllMatching(spec).SingleOrDefault();
                if (usuario == null)
                {
                    throw new AppException("Usuário não encontrado.");
                }

                if (usuario.Senha != Encryption.Encrypt(senha))
                {
                    throw new AppException("Senha inválida.");
                }

                if (!usuario.Ativo)
                {
                    throw new AppException("Não foi possível autenticar o usuário. Por favor contate o suporte.");
                }

                //TODO: verificar usuario inadimplente

                ControladorDeSessao.Autenticar(usuario, continuarConectado);
            }
            catch (Exception ex)
            {
                throw ManipuladorDeExcecao.TrateExcecao(ex);
            }
        }