/// <summary> /// Loga o usuário na aplicação /// </summary> private void DesbloquearUsuario() { StringBuilder strValidacao = ValidarCampos(); // Verifica se as informações do usuário são válidas if (strValidacao.Length > 0) { MessageBox.Show(strValidacao.ToString(), "Sessão", MessageBoxButton.OK, MessageBoxImage.Information); } else { // Define os dados do Login Contrato.EntradaUsuario usuario = new Contrato.EntradaUsuario(); usuario.Usuario = new Contrato.Usuario(); usuario.Usuario.Login = txtLogin.Conteudo; usuario.Usuario.Senha = Comum.Util.CriptografiaMD5(txtSenha.Conteudo); usuario.Chave = Comum.Util.Chave; // Chama o serviço para logar na aplicação Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); Contrato.RetornoUsuario retUsuario = servBrasilDidaticos.UsuarioLogar(usuario); servBrasilDidaticos.Close(); // Verifica se o usuário logou com sucesso if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO || retUsuario.Codigo == Contrato.Constantes.COD_REGISTRO_DUPLICADO) { // Se o usuáio possui permissão para desbloqueio if (_sessao != null && Comum.Util.ValidarPermissao(retUsuario.Usuarios.First(), Comum.Constantes.TELA_SESSAO, Comum.Constantes.PERMISSAO_DESBLOQUEAR_USUARIO) && retUsuario.Usuarios.First().Empresa.Id == _usuario.Empresa.Id) { servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); servBrasilDidaticos.SessaoExcluir(new Contrato.Sessao() { Login = _sessao.Login, Chave = _sessao.Chave }); servBrasilDidaticos.Close(); SessaoDesbloqueada = true; // Se está duplicado significa que o usuário já está logado, então não apaga a sua sessão if (retUsuario.Codigo != Contrato.Constantes.COD_REGISTRO_DUPLICADO) { // Chama o serviço para apagar a sessão do usuário que possui permissão para o desbloqueio servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); servBrasilDidaticos.SessaoExcluir(new Contrato.Sessao() { Login = usuario.Usuario.Login, Chave = usuario.Chave }); servBrasilDidaticos.Close(); } // Fecha a tela de Sessão this.Close(); } } if (!SessaoDesbloqueada) { MessageBox.Show(string.Format("Não foi possível desbloquear a sessão do usuário!\nPor favor, verifique o usuário ou a senha informada!", txtLogin.Conteudo), "Sessão", MessageBoxButton.OK, MessageBoxImage.Information); } } }
/// <summary> /// Loga o usuário na aplicação /// </summary> private void Logar() { StringBuilder strValidacao = ValidarCampos(); // Verifica se as informações do usuário são válidas if (strValidacao.Length > 0) { MessageBox.Show(strValidacao.ToString(), "Login", MessageBoxButton.OK, MessageBoxImage.Information); } else { // Define se a sessão foi desbloqueada. Por padrão sempre é verdadeiro bool sessaoDesbloqueda = false; // Define os dados do Login Contrato.EntradaUsuario usuario = new Contrato.EntradaUsuario(); usuario.Usuario = new Contrato.Usuario(); usuario.Usuario.Login = txtLogin.Conteudo; usuario.Usuario.Senha = Comum.Util.CriptografiaMD5(txtSenha.Conteudo); usuario.Chave = Comum.Util.Chave; // Chama o serviço para logar na aplicação Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); Contrato.RetornoUsuario retUsuario = servBrasilDidaticos.UsuarioLogar(usuario); servBrasilDidaticos.Close(); // Verifica se o usuário já está logado if (retUsuario.Codigo == Contrato.Constantes.COD_REGISTRO_DUPLICADO) { MessageBox.Show(string.Format("Sessão Bloqueada!\nPor favor, solicite ao responsável o desbloqueio de sua sessão!", txtLogin.Conteudo), "Login", MessageBoxButton.OK, MessageBoxImage.Information); servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); Contrato.RetornoSessao retSessao = servBrasilDidaticos.SessaoListar(new Contrato.Sessao() { Login = usuario.Usuario.Login }); servBrasilDidaticos.Close(); WSessao wSessao = new WSessao(); wSessao.Usuario = retUsuario.Usuarios.FirstOrDefault(); wSessao.Sessao = retSessao.Sessoes.FirstOrDefault(); wSessao.ShowDialog(); sessaoDesbloqueda = wSessao.SessaoDesbloqueada; } // Verifica se o usuário foi desbloqueado if (sessaoDesbloqueda) { // Loga novamenente na aplicação servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); retUsuario = servBrasilDidaticos.UsuarioLogar(usuario); servBrasilDidaticos.Close(); } // Verifica se o usuário logou com sucesso if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Guarda os dados do usuário Logado Comum.Util.UsuarioLogado = retUsuario.Usuarios.First(); // Esconde a tela de login this.Visibility = System.Windows.Visibility.Hidden; // Recupera os parâmetros Comum.Parametros.CarregarParametros(); //// Entra na tela principal WPrincipal wPrincipal = new WPrincipal(); wPrincipal.ShowDialog(); } else if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_VAZIO) { MessageBox.Show(string.Format("Não foi possível entrar na aplicação!\nPor favor, verifique o usuário ou a senha informada!", txtLogin.Conteudo), "Login", MessageBoxButton.OK, MessageBoxImage.Information); } else MessageBox.Show(retUsuario.Mensagem, "Login", MessageBoxButton.OK, MessageBoxImage.Information); } }