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); } }