/// <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> /// Fecha a aplicação /// </summary> private void Fechar() { // Chama o serviço para apagar a sessão do usuário da aplicação if (Comum.Util.UsuarioLogado != null) { Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint()); Contrato.RetornoSessao retSessao = servBrasilDidaticos.SessaoExcluir(new Contrato.Sessao() { Login = Comum.Util.UsuarioLogado.Login, Chave = Comum.Util.Chave }); servBrasilDidaticos.Close(); } }