Пример #1
0
        protected new void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);

            if (!Page.IsPostBack)
            {
                //this.pnlFerramentas.Visible = base.UsuarioPode("Consultar", "63db2334-9351-4ca6-8b39-bd3ce4d9778b");

                ReceberArvoreComandosInterfaceRequest  lRequest;
                ReceberArvoreComandosInterfaceResponse lResponse;

                lRequest = new ReceberArvoreComandosInterfaceRequest();

                lRequest.CodigoSessao = this.CodigoSessao;
                lRequest.CodigoGrupoComandoInterface = "default";

                lResponse = this.ServicoInterface.ReceberArvoreComandosInterface(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    this.rptMenuPrincipal.DataSource = lResponse.ComandosInterfaceRaiz;
                    this.rptMenuPrincipal.DataBind();
                }
                else
                {
                    //TODO: Erro!
                    throw new Exception(string.Format("Erro de resposta do serviço: [{0}] [{1}]", lResponse.StatusResposta, lResponse.DescricaoResposta));
                }
            }

            base.RegistrarRespostasAjax(new string[] { "BuscarPapelCotacaoRapida"
                                                       , "ManterSessaoDoUsuario" },
                                        new ResponderAcaoAjaxDelegate[] { BuscarPapelCotacaoRapida
                                                                          , ResponderManterSessaoDoUsuario });
        }
Пример #2
0
        private void ObterSubSistemas()
        {
            ReceberArvoreComandosInterfaceRequest ReceberSubSistemasReq = new ReceberArvoreComandosInterfaceRequest();

            ReceberSubSistemasReq.CodigoSessao = this.CodigoSessao;
            ReceberSubSistemasReq.CodigoGrupoComandoInterface = "default";

            ReceberArvoreComandosInterfaceResponse ReceberSubSistemasRes = this.ServicoInterface.ReceberArvoreComandosInterface(ReceberSubSistemasReq);

            this.SubSistemas = ReceberSubSistemasRes.ComandosInterfaceRaiz;
        }
Пример #3
0
        /// <summary>
        /// Solicita o processamento dos comandos de interface. Verifica os comandos permitidos e retorna
        /// a árvore.
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public ReceberArvoreComandosInterfaceResponse ReceberArvoreComandosInterface(ReceberArvoreComandosInterfaceRequest parametros)
        {
            // Referencia para o servico de seguranca
            IServicoSeguranca servicoSeguranca = Ativador.Get <IServicoSeguranca>();

            // Prepara a resposta
            ReceberArvoreComandosInterfaceResponse resposta =
                new ReceberArvoreComandosInterfaceResponse()
            {
                CodigoMensagemRequest       = parametros.CodigoMensagem,
                CodigoGrupoComandoInterface = parametros.CodigoGrupoComandoInterface
            };

            // Pega grupo de comandos
            ReceberGrupoComandoInterfaceResponse respostaReceber =
                this.ReceberGrupoComandoInterface(
                    new ReceberGrupoComandoInterfaceRequest()
            {
                CodigoSessao = parametros.CodigoSessao,
                CodigoGrupoComandoInterface = parametros.CodigoGrupoComandoInterface
            });

            // Transforma a árvore de comandos em lista
            List <ComandoInterfaceInfo> listaComandos = respostaReceber.GrupoComandoInterface.ListarComandos();

            // Cria lista indicando quais comandos são grupo
            List <string> listaGrupos =
                (from c in listaComandos
                 where c.Filhos.Count > 0
                 select c.CodigoComandoInterface).ToList();

            // Salva o código do item na tag da segurança para enviar para validação
            foreach (ComandoInterfaceInfo item in listaComandos)
            {
                item.Seguranca.Tag = item.CodigoComandoInterface;
            }

            // Cria lista de itens de seguranca a validar
            List <ItemSegurancaInfo> itensSeguranca =
                (from c in listaComandos
                 select c.Seguranca).ToList();

            // Solicita validação dos itens
            ValidarItemSegurancaResponse respostaValidacao =
                servicoSeguranca.ValidarItemSeguranca(
                    new ValidarItemSegurancaRequest()
            {
                CodigoSessao   = parametros.CodigoSessao,
                ItensSeguranca = itensSeguranca
            });

            // Cria dicionario com os itens validados para reassociar aos comandos
            Dictionary <string, ItemSegurancaInfo> dicionarioItens = new Dictionary <string, ItemSegurancaInfo>();

            foreach (ItemSegurancaInfo item in respostaValidacao.ItensSeguranca)
            {
                dicionarioItens.Add(item.Tag, item);
            }

            // Reassocia itens de segurança validado aos comandos
            foreach (ComandoInterfaceInfo comando in listaComandos)
            {
                if (dicionarioItens.ContainsKey(comando.CodigoComandoInterface))
                {
                    comando.Seguranca = dicionarioItens[comando.CodigoComandoInterface];
                }
            }

            // Cria dicionário de pais e filhos
            // O dicionário está montado como codigoFilho, codigoPai
            Dictionary <string, ComandoInterfaceInfo> dicionarioPaisFilhos = new Dictionary <string, ComandoInterfaceInfo>();

            foreach (ComandoInterfaceInfo comandoPai in listaComandos)
            {
                foreach (ComandoInterfaceInfo comandoFilho in comandoPai.Filhos)
                {
                    dicionarioPaisFilhos.Add(comandoFilho.CodigoComandoInterface, comandoPai);
                }
            }

            // Remove os não válidados pela segurança
            List <ComandoInterfaceInfo> comandosRemover =
                (from c in listaComandos
                 where !c.Seguranca.Valido.HasValue || c.Seguranca.Valido.Value == false
                 select c).ToList();

            foreach (ComandoInterfaceInfo comandoRemover in comandosRemover)
            {
                if (dicionarioPaisFilhos.ContainsKey(comandoRemover.CodigoComandoInterface))
                {
                    dicionarioPaisFilhos[comandoRemover.CodigoComandoInterface].Filhos.Remove(comandoRemover);
                }
                else
                {
                    respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz.Remove(comandoRemover);
                }
            }

            // Remover os menus de grupo que não tem filhos
            List <ComandoInterfaceInfo> comandosRemover2 =
                (from c in listaComandos
                 where listaGrupos.Contains(c.CodigoComandoInterface) && c.Filhos.Count == 0
                 select c).ToList();

            foreach (ComandoInterfaceInfo comandoRemover in comandosRemover2)
            {
                if (dicionarioPaisFilhos.ContainsKey(comandoRemover.CodigoComandoInterface))
                {
                    dicionarioPaisFilhos[comandoRemover.CodigoComandoInterface].Filhos.Remove(comandoRemover);
                }
                else
                {
                    respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz.Remove(comandoRemover);
                }
            }

            // Retorna a arvore
            resposta.ComandosInterfaceRaiz = respostaReceber.GrupoComandoInterface.ComandosInterfaceRaiz;

            // Retorna
            return(resposta);
        }
Пример #4
0
        private List <TransporteSegurancaInterfaces> ObterInterfaces()
        {
            string lSubSistema     = Request["SubSistema"];
            string lInterfaceAcoes = "Menu_Acoes_" + lSubSistema;
            string lInterfaceDados = "Menu_Dados_" + lSubSistema;
            //string lInterface = "Menu_" + lSubSistema;

            ReceberArvoreComandosInterfaceRequest ReceberInterfacesAcoesReq = new ReceberArvoreComandosInterfaceRequest();

            ReceberInterfacesAcoesReq.CodigoSessao = this.CodigoSessao;
            ReceberInterfacesAcoesReq.CodigoGrupoComandoInterface = lInterfaceAcoes;

            ReceberArvoreComandosInterfaceRequest ReceberInterfacesDadosReq = new ReceberArvoreComandosInterfaceRequest();

            ReceberInterfacesDadosReq.CodigoSessao = this.CodigoSessao;
            ReceberInterfacesDadosReq.CodigoGrupoComandoInterface = lInterfaceDados;

            List <TransporteSegurancaInterfaces> lRetorno = new List <TransporteSegurancaInterfaces>();

            try
            {
                ReceberInterfacesDadosReq.DescricaoUsuarioLogado = base.UsuarioLogado.Nome; ReceberInterfacesDadosReq.IdUsuarioLogado = base.UsuarioLogado.Id;
                ReceberArvoreComandosInterfaceResponse ReceberInterfacesDadosRes = this.ServicoInterface.ReceberArvoreComandosInterface(ReceberInterfacesDadosReq);

                foreach (ComandoInterfaceInfo ci in ReceberInterfacesDadosRes.ComandosInterfaceRaiz)
                {
                    TransporteSegurancaInterfaces iTsi = new TransporteSegurancaInterfaces();
                    iTsi.Nome          = ci.Nome;
                    iTsi.NomePermissao = ci.CodigoComandoInterface.Split('_')[1];
                    iTsi.SubSistema    = ci.CodigoComandoInterface.Split('_')[0];

                    lRetorno.Add(iTsi);
                }
            }
            catch (Exception Ex)
            {
                logger.Error(Ex.Message, Ex);
            }

            try
            {
                ReceberInterfacesAcoesReq.DescricaoUsuarioLogado = base.UsuarioLogado.Nome;
                ReceberInterfacesAcoesReq.IdUsuarioLogado        = base.UsuarioLogado.Id;
                ReceberArvoreComandosInterfaceResponse ReceberInterfacesAcoesRes = this.ServicoInterface.ReceberArvoreComandosInterface(ReceberInterfacesAcoesReq);

                foreach (ComandoInterfaceInfo ci in ReceberInterfacesAcoesRes.ComandosInterfaceRaiz)
                {
                    TransporteSegurancaInterfaces iTsi = new TransporteSegurancaInterfaces();
                    iTsi.Nome          = ci.Nome;
                    iTsi.NomePermissao = ci.CodigoComandoInterface.Split('_')[1];
                    iTsi.SubSistema    = ci.CodigoComandoInterface.Split('_')[0];

                    lRetorno.Add(iTsi);
                }
            }
            catch (Exception Ex)
            {
                logger.Error(Ex.Message, Ex);
            }

            return(lRetorno);
        }