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 }); }
private void ObterSubSistemas() { ReceberArvoreComandosInterfaceRequest ReceberSubSistemasReq = new ReceberArvoreComandosInterfaceRequest(); ReceberSubSistemasReq.CodigoSessao = this.CodigoSessao; ReceberSubSistemasReq.CodigoGrupoComandoInterface = "default"; ReceberArvoreComandosInterfaceResponse ReceberSubSistemasRes = this.ServicoInterface.ReceberArvoreComandosInterface(ReceberSubSistemasReq); this.SubSistemas = ReceberSubSistemasRes.ComandosInterfaceRaiz; }
/// <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); }
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); }