예제 #1
0
        /// <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();
     }
 }