Beispiel #1
0
    protected void grvPermissoes_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridView grvPermissoes = (GridView)sender;

            int       sis_id   = Convert.ToInt32(grvPermissoes.DataKeys[e.Row.RowIndex]["sis_id"]);
            int       mod_id   = Convert.ToInt32(grvPermissoes.DataKeys[e.Row.RowIndex]["mod_id"]);
            DataTable dtModulo = SYS_ModuloBO.SelectBy_mod_id_Filhos(sis_id, mod_id);

            if (dtModulo.Rows.Count > 0)
            {
                GridView grv = (GridView)e.Row.FindControl("grvPermissoesChild");
                grv.DataSource = SYS_GrupoBO.GetSelectPermissoes(mod_id, new Guid(grvPermissoes.DataKeys[e.Row.RowIndex]["gru_id"].ToString()));
                grv.DataBind();

                LinkButton lkb = (LinkButton)e.Row.FindControl("lkbExpandir");
                if (lkb != null)
                {
                    lkb.OnClientClick = "ExpandCollapse3('" + grv.ClientID + "', '" + lkb.ClientID + "');  return false;";
                    lkb.Visible       = true;
                }
            }
            else
            {
                e.Row.Cells[ColumnCollapse].Visible = false;
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                GetModuloId
                );
            if (String.IsNullOrEmpty(menuXml))
            {
                menuXml = "<menus/>";
            }
            menuXml = menuXml.Replace("url=\"~/", "url=\"");

            XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
            XPathDocument        treeDoc = new XPathDocument(reader);
            XslCompiledTransform siteMap = new XslCompiledTransform();
            siteMap.Load(Server.MapPath("Includes/SiteMap.xslt"));

            StringWriter sw = new StringWriter();
            siteMap.Transform(treeDoc, null, sw);
            string result = sw.ToString();

            Control ctrl = Page.ParseControl(result);
            _lblSiteMap.Controls.Add(ctrl);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao carregar informações!", UtilBO.TipoMensagem.Erro);
        }
    }
    private void _CarregarModulos()
    {
        try
        {
            trvModulos.Nodes.Clear();

            //DataSet dst = _trvModulosData(sis_id);
            DataTable dtModulosPais = SYS_ModuloBO.SelectBy_mod_id_Filhos(_VS_sis_id, 0);

            foreach (DataRow pais in dtModulosPais.Rows)
            {
                //carregando o 1º nivel (pais)
                TreeNode masterNode = _criaNoTree((string)pais["mod_nome"], Convert.ToInt32(pais["mod_id"]));

                masterNode = _TrataNo(_VS_sis_id, masterNode);

                trvModulos.Nodes.Add(masterNode);
            }
            _divResultado.Visible = true;
            trvModulos.DataBind();
            _updModulos.Update();

            divModulo.Visible = false;

            _TrataBotoes(false);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar os módulos.", UtilBO.TipoMensagem.Erro);
        }
    }
    private TreeNode _TrataNo(int sis_id, TreeNode no)
    {
        DataTable dtModulosFilhos = SYS_ModuloBO.SelectBy_mod_id_Filhos(sis_id, Convert.ToInt32(no.Value));

        if (dtModulosFilhos.Rows.Count > 0)
        {
            foreach (DataRow filhos in dtModulosFilhos.Rows)
            {
                TreeNode filho = _AdicionaFilhoNo((string)filhos["mod_nome"], Convert.ToInt32(filhos["mod_id"]), no);
                _TrataNo(sis_id, filho);
            }
        }
        return(no);
    }
        protected override void OnLoad(EventArgs e)
        {
            string dirIncludes = __SessionWEB._AreaAtual._DiretorioIncludes;

            Page.Header.Controls.Add(UtilBO.SetStyleHeader(dirIncludes, "altoContraste.css", true));

            //Inicia tag que checa se o browser é IE6
            LiteralControl ifIE6 = new LiteralControl("<!--[if IE 6]>");

            Page.Header.Controls.Add(ifIE6);

            //Adiciona css para IE6
            Page.Header.Controls.Add(UtilBO.SetStyleHeader(dirIncludes, "cssIE6.css", false));

            //Fecha tag que checa se o browser é IE6
            LiteralControl endifIE6 = new LiteralControl("<![endif]-->");

            Page.Header.Controls.Add(endifIE6);

            if (__SessionWEB.__UsuarioWEB.Grupo != null)
            {
                __SessionWEB.__UsuarioWEB.GrupoPermissao = SYS_GrupoBO.GetGrupoPermissaoBy_url(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id
                    , HttpContext.Current.Request.CurrentExecutionFilePath
                    );
                SYS_Modulo mod = new SYS_Modulo
                {
                    mod_id = __SessionWEB.__UsuarioWEB.GrupoPermissao.mod_id,
                    sis_id = __SessionWEB.__UsuarioWEB.GrupoPermissao.sis_id
                };
                HttpContext.Current.Session[SYS_Modulo.SessionName] = SYS_ModuloBO.GetEntity(mod);
            }

            Title = CoreLibrary.Web.WebProject.ApplicationWEB._TituloDasPaginas;

            base.OnLoad(e);

            // Adiciona Init.js, que carrega na tela todas as funções declaradas dos outros scripts.
            // Carregar sempre por último - depois de todos os outros Js da página.
            ScriptManager sm = ScriptManager.GetCurrent(this);

            if (sm != null)
            {
                sm.Scripts.Add(new ScriptReference(ArquivoJS.Init));
            }
        }
 private void _ExcluirModulo(int sis_id, int mod_id)
 {
     try
     {
         SYS_Modulo modulo = new SYS_Modulo
         {
             mod_id = mod_id
             ,
             sis_id = sis_id
         };
         SYS_ModuloBO.Delete(modulo);
         ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "sis_id: " + _VS_sis_id + "; mod_id: " + modulo.mod_id);
     }
     catch
     {
         throw;
     }
 }
Beispiel #7
0
        public HttpResponseMessage GetMenuDoGrupoDeUsuarioNoSistema(int sistemaId, Guid grupoId)
        {
            try
            {
                if (sistemaId <= 0)
                {
                    return(BadRequestResponse("O Id do sistema é obrigatório!"));
                }

                if (grupoId == Guid.Empty)
                {
                    return(BadRequestResponse("O Id do grupo é obrigatório!"));
                }

                SYS_Grupo grupo = GrupoBO.SelecionarGrupoPorId(grupoId).FirstOrDefault();

                if (grupo == null)
                {
                    return(NotFoundResponse("Grupo não encontrado!"));
                }

                var menuxml = SYS_ModuloBO.CarregarMenuXML(grupoId
                                                           , sistemaId
                                                           , grupo.vis_id);

                return(new HttpResponseMessage
                {
                    RequestMessage = Request,
                    Content = new StringContent(menuxml, Encoding.UTF8, "application/xml")
                });
            }
            catch (Exception ex)
            {
                Util.GravarErro(ex);
                return(InternalServerErrorResponse());
            }
        }
    private void _SalvarModulo()
    {
        int mod_id = String.IsNullOrEmpty(_txt_mod_id.Text.Trim()) ? 0 : Convert.ToInt32(_txt_mod_id.Text.Trim());

        try
        {
            SYS_Modulo modulo = new SYS_Modulo
            {
                mod_situacao = 1
                ,
                mod_dataAlteracao = DateTime.Now
                ,
                mod_dataCriacao = DateTime.Now
                ,
                mod_nome = _txt_mod_nome.Text
                ,
                mod_auditoria = _ckb_mod_auditoria.Checked
                ,
                mod_descricao = _txt_mod_descricao.Text
                ,
                mod_idPai = String.IsNullOrEmpty(_txt_mod_idPai.Value.Trim()) ? 0 : Convert.ToInt32(_txt_mod_idPai.Value.Trim())
                ,
                sis_id = _VS_sis_id
                ,
                mod_id = mod_id
                ,
                IsNew = mod_id == 0 ? true : false
            };

            // SE NÃO FOR UM MÓDULO PAI VERIFICA PERMISSÕES
            if (modulo.mod_idPai != 0)
            {
                foreach (DataRow item in _VS_VisoesSalvasModulos.Rows)
                {
                    if (item.RowState != DataRowState.Deleted)
                    {
                        // VERIFICA SE A VISÃO TEM PERMISSAO NO MODULO PAI DO MODULO QUE ESTÁ SENDO ATRIBUIDA
                        SYS_ModuloBO bo = new SYS_ModuloBO();

                        if (!bo.ValidarPermissaoModuloPai(_VS_sis_id, Convert.ToInt32(item.ItemArray[0]), modulo.mod_idPai))
                        {
                            SYS_Modulo moduloPai = new SYS_Modulo
                            {
                                mod_id = modulo.mod_idPai
                                ,
                                sis_id = _VS_sis_id
                            };
                            SYS_ModuloBO.GetEntity(moduloPai);
                            throw new ValidationException("A visão de usuário " + item.ItemArray[1].ToString() + " não possui permissão no módulo pai (" + moduloPai.mod_nome + "). " +
                                                          "Atribua esta permissão para que ele acesse o módulo " + _txt_mod_nome.Text + ".");
                        }
                    }
                }
            }

            //Salvar o módulo.
            if (SYS_ModuloBO.Save(modulo, _VS_Mod_SiteMapMenu, _VS_Mod_SiteMapMenuAntigo, _VS_VisoesSalvasModulos, _VS_SiteMap))
            {
                divModulo.Visible = false;

                if (modulo.IsNew)
                {
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "sis_id: " + _VS_sis_id + "; mod_id: " + modulo.mod_id);
                    _lblMessage.Text = UtilBO.GetErroMessage("Módulo incluído com sucesso.", UtilBO.TipoMensagem.Sucesso);
                }
                else
                {
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "sis_id: " + _VS_sis_id + "; mod_id: " + modulo.mod_id);
                    _lblMessage.Text = UtilBO.GetErroMessage("Módulo alterado com sucesso.", UtilBO.TipoMensagem.Sucesso);
                }

                _CarregarModulos();
            }
            else
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o módulo.", UtilBO.TipoMensagem.Erro);
            }
        }
        catch (ValidationException e)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (Exception e)
        {
            ApplicationWEB._GravaErro(e);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o módulo.", UtilBO.TipoMensagem.Erro);
            _CarregarModulos();
        }
        finally
        {
            _updModulos.Update();
            _updDetalhesModulo.Update();
        }
    }
    private void _TrataCadastroModulo(int sis_id, int mod_id, string mod_nome, int mod_idPai)
    {
        try
        {
            if (sis_id > 0)
            {
                if (mod_id > 0)
                {
                    SYS_Modulo modulo = new SYS_Modulo
                    {
                        mod_id = mod_id
                        ,
                        sis_id = sis_id
                    };

                    SYS_ModuloBO.GetEntity(modulo);
                    _txt_mod_nome.Text         = mod_nome;
                    _txt_mod_id.Text           = mod_id.ToString();
                    _txt_mod_descricao.Text    = modulo.mod_descricao;
                    _txt_mod_idPai.Value       = modulo.mod_idPai.ToString();
                    _ckb_mod_auditoria.Checked = modulo.mod_auditoria;

                    DataTable dtVisoes = SYS_GrupoPermissaoBO.GetSelect_Visoes(sis_id, mod_id);
                    _VS_VisoesSalvasModulos = dtVisoes.Rows.Count > 0 ? dtVisoes : null;
                    _CarregarVisoes(_VS_VisoesSalvasModulos);

                    if (SYS_VisaoModuloMenuBO.GetSelect_SiteMapMenu(sis_id, mod_id) != Convert.ToInt32(null))
                    {
                        _VS_Mod_SiteMapMenu = SYS_VisaoModuloMenuBO.GetSelect_SiteMapMenu(sis_id, mod_id);
                    }
                    else
                    {
                        _VS_Mod_SiteMapMenu = 0;
                    }

                    _VS_Mod_SiteMapMenuAntigo = _VS_Mod_SiteMapMenu;

                    DataTable dtSiteMap = SYS_ModuloSiteMapBO.GetSelect_by_mod_id(sis_id, mod_id, _gdvSiteMap.AllowPaging, 1, _gdvSiteMap.PageSize);
                    _VS_SiteMap = dtSiteMap.Rows.Count > 0 ? dtSiteMap : null;
                    _CarregarSiteMap(_VS_SiteMap);

                    _VS_msm_id = SYS_ModuloSiteMapBO.Gerar_msm_id(sis_id, mod_id) - 1;
                }
                else
                {
                    _LimparCamposNovo();
                    _txt_mod_nome.Text   = mod_nome;
                    _txt_mod_id.Text     = mod_id.ToString();
                    _txt_mod_idPai.Value = mod_idPai.ToString();
                }

                _lblMessage.Text  = string.Empty;
                divModulo.Visible = true;
            }
            else
            {
                divModulo.Visible = false;
            }
            _updDetalhesModulo.Update();
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o módulo.", UtilBO.TipoMensagem.Erro);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Exibe o título no navegador
        Page.Title = __SessionWEB.TituloGeral + " - " + __SessionWEB.TituloSistema;

        #region Adiciona links de favicon

        string TemaAtual = __SessionWEB.TemaPadraoLogado.tep_nome;

        HtmlLink link = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon.ico");
        link.Attributes["rel"]   = "shortcut icon";
        link.Attributes["sizes"] = "";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-57x57.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "57x57";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-114x114.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "114x114";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-72x72.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "72x72";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-144x144.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "144x144";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-60x60.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "60x60";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-120x120.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "120x120";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-76x76.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "76x76";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-152x152.png");
        link.Attributes["rel"]   = "apple-touch-icon";
        link.Attributes["sizes"] = "152x152";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-196x196.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "196x196";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-160x160.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "160x160";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-96x96.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "96x96";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-16x16.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "16x16";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "32x32";
        Page.Header.Controls.Add(link);

        link      = new HtmlLink();
        link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
        link.Attributes["rel"]   = "icon";
        link.Attributes["sizes"] = "32x32";
        Page.Header.Controls.Add(link);

        HtmlMeta meta = new HtmlMeta();
        meta.Name    = "msapplication-TileImage";
        meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/mstile-144x144.png");
        Page.Header.Controls.Add(meta);

        meta         = new HtmlMeta();
        meta.Name    = "msapplication-config";
        meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/browserconfig.xml");
        Page.Header.Controls.Add(meta);

        #endregion

        if (!IsPostBack)
        {
            try
            {
                //Exibe o contato do help desk do cliente
                spnHelpDesk.InnerHtml = __SessionWEB.HelpDeskContato;

                if (__SessionWEB.__UsuarioWEB.Grupo != null)
                {
                    string menuXml = SYS_ModuloBO.CarregarMenuXML(
                        __SessionWEB.__UsuarioWEB.Grupo.gru_id
                        , __SessionWEB.__UsuarioWEB.Grupo.sis_id
                        , __SessionWEB.__UsuarioWEB.Grupo.vis_id
                        );
                    if (String.IsNullOrEmpty(menuXml))
                    {
                        menuXml = "<menus/>";
                    }
                    XmlDataSource1.Data = menuXml;
                    XmlDataSource1.DataBind();

                    //LoadMenuTipo2();

                    //Carrrega nome do usuario logado no sistema e exibe na pagina na mensagem de Bem-vindo.
                    lblUsuario.Text = RetornaLoginFormatado(__SessionWEB.UsuarioLogado);

                    //Exibe a mensagem de copyright no rodapé.
                    //lblCopyright.Text = "<span class='tituloGeral'>" + __SessionWEB.TituloGeral + " - " + __SessionWEB.TituloSistema + "</span><span class='sep'> - </span><span class='versao'>" + _VS_versao + "</span><span class='sep'> - </span><span class='mensagem'>" + __SessionWEB.MensagemCopyright + "</span>";
                    lblCopyright.Text = "<span class='tituloGeral'>Desenvolvido no Brasil</span> | <span class='mensagem'>" + __SessionWEB.MensagemCopyright + "</span> | <span class='versao'>" + _VS_versao + "</span>";

                    //Atribui o caminho do logo geral do sistema, caso ele exista no Sistema Administrativo
                    if (string.IsNullOrEmpty(__SessionWEB.UrlLogoGeral))
                    {
                        ImgLogoGeral.Visible = false;
                    }
                    else
                    {
                        //Carrega logo geral do sistema
                        imgGeral.ImageUrl        = UtilBO.UrlImagem(__SessionWEB.UrlLogoGeral);
                        imgGeral.ToolTip         = __SessionWEB.TituloGeral;
                        imgGeral.AlternateText   = __SessionWEB.TituloGeral;
                        ImgLogoGeral.ToolTip     = __SessionWEB.TituloGeral;
                        ImgLogoGeral.NavigateUrl = __SessionWEB.UrlSistemaAutenticador + "/Sistema.aspx";
                    }

                    //Atribui o caminho do logo do sistema atual, caso ele exista no Sistema Administrativo
                    if (string.IsNullOrEmpty(__SessionWEB.UrlLogoSistema))
                    {
                        ImgLogoSistemaAtual.Visible = false;
                    }
                    else
                    {
                        //Carrega logo do sistema atual
                        imgSistemaAtual.ImageUrl        = UtilBO.UrlImagem(__SessionWEB.UrlLogoSistema);
                        imgSistemaAtual.AlternateText   = __SessionWEB.TituloSistema;
                        imgSistemaAtual.ToolTip         = __SessionWEB.TituloSistema;
                        ImgLogoSistemaAtual.ToolTip     = __SessionWEB.TituloSistema;
                        ImgLogoSistemaAtual.NavigateUrl = "~/Index.aspx";
                    }

                    //TODO: Descomentar codigo abaixo.
                    imgImagemInstituicao.Visible = false;
                    ImgLogoInstitiuicao.Visible  = false;

                    ////Atribui o caminho do logo cliente, caso ele exista no Sistema Administrativo
                    //if (string.IsNullOrEmpty(__SessionWEB.UrlInstituicao.Trim()))
                    //    ImgLogoInstitiuicao.Visible = false;
                    //else
                    //{
                    //    //Carrega logo do cliente
                    //    ImgLogoInstitiuicao.ImageUrl = UtilBO.UrlImagem(__SessionWEB.UrlLogoInstituicao);
                    //    ImgLogoInstitiuicao.ToolTip = string.Empty;
                    //    ImgLogoInstitiuicao.NavigateUrl = __SessionWEB.UrlInstituicao;
                    //}

                    //imgImageInstituicao.Visible = !ImgLogoInstitiuicao.Visible;
                    //imgImageInstituicao.ImageUrl = UtilBO.UrlImagem(__SessionWEB.UrlLogoInstituicao);

                    string urlHelp = SYS_ModuloSiteMapBO.SelecionaUrlHelpByUrl(__SessionWEB.__UsuarioWEB.Grupo.gru_id, Request.AppRelativeCurrentExecutionFilePath);

                    if (!string.IsNullOrEmpty(urlHelp))
                    {
                        hplHelp.Visible     = true;
                        hplHelp.NavigateUrl = urlHelp;
                        hplHelp.ToolTip     = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.MENSAGEM_ICONE_HELP);
                    }
                    else
                    {
                        hplHelp.Visible = false;
                    }
                }
                else
                {
                    Response.Redirect("~/logout.ashx");
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);

                if ((__SessionWEB.__UsuarioWEB != null) && (__SessionWEB.__UsuarioWEB.Usuario != null))
                {
                    lblUsuario.Text = RetornaLoginFormatado(__SessionWEB.__UsuarioWEB.Usuario.usu_login ?? "");
                }
            }
        }
    }
Beispiel #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //Exibe o título no navegador
            Page.Title = __SessionWEB.TituloGeral;

            #region Adiciona links de favicon

            HtmlLink link = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon.ico");
            link.Attributes["rel"]   = "shortcut icon";
            link.Attributes["sizes"] = "";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-57x57.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "57x57";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-114x114.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "114x114";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-72x72.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "72x72";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-144x144.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "144x144";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-60x60.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "60x60";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-120x120.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "120x120";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-76x76.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "76x76";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-152x152.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "152x152";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-196x196.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "196x196";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-160x160.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "160x160";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-96x96.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "96x96";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-16x16.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "16x16";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "32x32";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "32x32";
            Page.Header.Controls.Add(link);

            HtmlMeta meta = new HtmlMeta();
            meta.Name    = "msapplication-TileImage";
            meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/mstile-144x144.png");
            Page.Header.Controls.Add(meta);

            meta         = new HtmlMeta();
            meta.Name    = "msapplication-config";
            meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/browserconfig.xml");
            Page.Header.Controls.Add(meta);

            #endregion Adiciona links de favicon


            if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.EXIBIR_LISTA_SISTEMAS_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) &&
                !ApplicationWEB.LoginProprioDoSistema)
            {
                //Carrega logo geral do sistema
                imgGeral.ImageUrl        = UtilBO.UrlImagemGestao(__SessionWEB.UrlCoreSSO, __SessionWEB.UrlLogoGeral);
                imgGeral.ToolTip         = __SessionWEB.TituloGeral;
                imgGeral.AlternateText   = __SessionWEB.TituloGeral;
                ImgLogoGeral.ToolTip     = __SessionWEB.TituloGeral;
                ImgLogoGeral.NavigateUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
            }
            else
            {
                h1Logo.Visible = ImgLogoGeral.Visible = false;
                if (UCSistemas1 != null)
                {
                    UCSistemas1.Visible = false;
                }
            }

            //Atribui o caminho do logo do sistema atual, caso ele exista no Sistema Administrativo
            if (string.IsNullOrEmpty(__SessionWEB.UrlLogoSistema))
            {
                ImgLogoSistemaAtual.Visible = false;
            }
            else
            {
                //Carrega logo do sistema atual
                imgSistemaAtual.ImageUrl        = UtilBO.UrlImagemGestao(__SessionWEB.UrlCoreSSO, __SessionWEB.UrlLogoSistema);
                imgSistemaAtual.AlternateText   = __SessionWEB.TituloSistema;
                imgSistemaAtual.ToolTip         = __SessionWEB.TituloSistema;
                ImgLogoSistemaAtual.ToolTip     = __SessionWEB.TituloSistema;
                ImgLogoSistemaAtual.NavigateUrl = "~/Index.aspx";
            }

            try
            {
                // Busca dados do aluno

                Int64 alu_id = 0;
                if (__SessionWEB.__UsuarioWEB.responsavel && __SessionWEB.__UsuarioWEB.alu_id > 0)
                {
                    alu_id = __SessionWEB.__UsuarioWEB.alu_id;
                }
                else if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.pes_idAluno);
                }
                else
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                }

                bool boletimBloqueado           = false;
                bool compromissoEstudoBloqueado = false;
                if (alu_id > 0)
                {
                    compromissoEstudoBloqueado = !ACA_TipoCicloBO.VerificaSeExibeCompromissoAluno(alu_id);
                    DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id);
                    if (dtCurriculo.Rows.Count > 0)
                    {
                        string nomeAluno = dtCurriculo.Rows[0]["pes_nome"].ToString();
                        string parametroMatriculaEstadual = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                        string matriculaEstadual          = dtCurriculo.Rows[0]["alc_matriculaEstadual"].ToString();
                        string numeroMatricula            = dtCurriculo.Rows[0]["alc_matricula"].ToString();

                        litNomeAluno.Text    = __SessionWEB.__UsuarioWEB.responsavel ? (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "litNomeAluno.Text.Responsavel") : (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "litNomeAluno.Text.Aluno");
                        lblNomeAluno.Text    = nomeAluno;
                        lblMatricula.Text    = string.IsNullOrEmpty(parametroMatriculaEstadual) ? numeroMatricula : matriculaEstadual;
                        lblNroMatricula.Text = string.IsNullOrEmpty(parametroMatriculaEstadual)
                            ? GetGlobalResourceObject("AreaAluno", "MasterPageAluno.lblNroMatricula.Text").ToString()
                            : parametroMatriculaEstadual + ":";
                    }

                    ACA_Aluno entityAluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                        alu_id = alu_id
                    });
                    if (entityAluno.alu_possuiInformacaoSigilosa && entityAluno.alu_bloqueioBoletimOnline)
                    {
                        boletimBloqueado = true;
                    }
                }

                if (__SessionWEB.__UsuarioWEB.responsavel && boletimBloqueado)
                {
                    Response.Redirect("~/Index.aspx", false);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }

                // Se ja tiver logado mostra o linkbutton pra selecionar o aluno, senão esconde
                if (Session["Pes_Id_Responsavel"] != null)
                {
                    if (Convert.ToInt32(Session["Qtde_Filhos_Responsavel"]) > 1)
                    {
                        lbSelecaoAlunos.Visible = true;
                    }
                    else
                    {
                        lbSelecaoAlunos.Visible = false;
                    }
                    imgLogoAreaAluno.Visible = false;
                    imgLogoAreaResp.Visible  = true;
                }
                else
                {
                    lbSelecaoAlunos.Visible  = false;
                    imgLogoAreaAluno.Visible = true;
                    imgLogoAreaResp.Visible  = false;
                }

                // Busca dados do menu

                int mod_id = GetModuloId;

                string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                    __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                    __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                    mod_id
                    );

                if (String.IsNullOrEmpty(menuXml))
                {
                    menuXml = "<menus/>";
                }
                menuXml = menuXml.Replace("url=\"~/", String.Concat("url=\"", ApplicationWEB._DiretorioVirtual));

                // Verifica se o aluno está com o boletim bloqueado. Se estiver, retiro do menu.
                int indiceBoletim = menuXml.IndexOf("<menu id=\"Boletim");
                if (boletimBloqueado && indiceBoletim >= 0)
                {
                    menuXml = menuXml.Remove(indiceBoletim, menuXml.IndexOf("/>", indiceBoletim) - indiceBoletim + 2);
                }

                IDictionary <string, ICFG_Configuracao> configuracao;
                MSTech.GestaoEscolar.BLL.CFG_ConfiguracaoBO.Consultar(eConfig.Academico, out configuracao);
                if (configuracao.ContainsKey("AppURLAreaAlunoInfantil") && !string.IsNullOrEmpty(configuracao["AppURLAreaAlunoInfantil"].cfg_valor))
                {
                    string url            = HttpContext.Current.Request.Url.AbsoluteUri;
                    string configInfantil = configuracao["AppURLAreaAlunoInfantil"].cfg_valor;

                    if (url.Contains(configInfantil))
                    {
                        menuXml = menuXml.Replace("menu id=\"Boletim Online\"", "menu id=\"" + (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "MenuBoletimInfantil") + "\"");
                    }
                }

                // Verifica se o aluno está com o compromisso estudo bloqueado. Se estiver, retiro do menu.
                int indiceCompromissoEstudo = menuXml.IndexOf("<menu id=\"Compromisso de Estudo");
                if (compromissoEstudoBloqueado && indiceCompromissoEstudo >= 0)
                {
                    menuXml = menuXml.Remove(indiceCompromissoEstudo, menuXml.IndexOf("/>", indiceCompromissoEstudo) - indiceCompromissoEstudo + 2);
                }

                XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
                XPathDocument        treeDoc = new XPathDocument(reader);
                XslCompiledTransform siteMap = new XslCompiledTransform();

                if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapPagesResponsavel.xslt"));
                }
                else
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapPages.xslt"));
                }

                string page = Page.Request.Url.ToString();

                StringWriter sw = new StringWriter();
                siteMap.Transform(treeDoc, null, sw);

                string result = sw.ToString();


                //Carrega a lista de link e moduloId
                Dictionary <string, string> linkModulo = new Dictionary <string, string>();
                string[] linkMenusXml = menuXml.Split(new[] { "<menu id=\"" }, StringSplitOptions.None);
                if (linkMenusXml.Length > 0)
                {
                    bool primeiroItem = true;
                    foreach (string item in linkMenusXml)
                    {
                        if (!primeiroItem)
                        {
                            string link2  = item.Substring(item.IndexOf("url=\"") + 5, item.Substring(item.IndexOf("url=\"") + 5).IndexOf("\""));
                            string modulo = item.Substring(0, item.IndexOf("\""));
                            linkModulo.Add(link2, modulo);
                        }
                        primeiroItem = false;
                    }
                }

                //Carrega a lista de link e classe css atual
                Dictionary <string, string> linkClasse = new Dictionary <string, string>();
                string[] linkMenus = result.Split(new[] { "<li class=\"txtSubMenu\"><a " }, StringSplitOptions.None);
                if (linkMenus.Length > 0)
                {
                    bool primeiroItem = true;
                    foreach (string item in linkMenus)
                    {
                        if (!primeiroItem)
                        {
                            string link2  = item.Substring(item.IndexOf("href=\"") + 6, item.Substring(item.IndexOf("href=\"") + 6).IndexOf("\""));
                            string classe = item.Substring(item.IndexOf("class=\"") + 7, item.Substring(item.IndexOf("class=\"") + 7).IndexOf("\""));
                            linkClasse.Add(link2, "class=\"" + classe + "\" " + "href=\"" + link2);
                        }
                        primeiroItem = false;
                    }
                }

                //Troca a classe css atual do link conforme o que está configurado na tabela filtrando pelo modulo
                List <CFG_ModuloClasse> lstModClasse = new List <CFG_ModuloClasse>();
                if (linkModulo.Count > 0 && linkClasse.Count > 0)
                {
                    lstModClasse = CFG_ModuloClasseBO.SelecionaAtivos(ApplicationWEB.AreaAlunoSistemaID);
                    foreach (var item in linkClasse)
                    {
                        string modulo = linkModulo[item.Key];
                        if (!string.IsNullOrEmpty(modulo) && lstModClasse.Any(p => p.mod_nome == modulo))
                        {
                            string classeCfg = lstModClasse.Where(p => p.mod_nome == modulo).FirstOrDefault().mdc_classe;
                            if (!string.IsNullOrEmpty(classeCfg))
                            {
                                result = result.Replace(item.Value, "class=\"link " + classeCfg + "\" " + "href=\"" + item.Key);
                            }
                        }
                    }
                }


                int indexPagina = result.IndexOf(Page.Request.Url.ToString()) > 0 ? result.IndexOf(Page.Request.Url.ToString()) : result.IndexOf(Page.Request.UrlReferrer.ToString());
                int indexClasse = 0;
                if (indexPagina > 0)
                {
                    indexClasse = result.IndexOf("txtSubMenu", (indexPagina - 60), result.Length - indexPagina);
                }

                string resultClasse = result.Substring(indexClasse);

                // Busca menu que está sendo chamado, para adicionar a classe ativo para a aba selecionada
                if (indexClasse > 0)
                {
                    result = result.Replace(resultClasse, "ativo " + resultClasse);
                }

                Control ctrl = Page.ParseControl(result);
                menuAreaAlunoComponentes.Controls.Add(ctrl);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
            }
        }
Beispiel #12
0
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// <author>juliano.real</author>
        /// <datetime>12/10/2013-09:20</datetime>
        /// <exception cref="System.ComponentModel.DataAnnotations.ValidationException">Usuário não autorizado a exibir o area aluno.</exception>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                String sMensagemLog = "";

                divResponsavel.Visible = __SessionWEB.__UsuarioWEB.responsavel;

                Int64 alu_id     = 0;
                long  arq_idFoto = 0;
                if (__SessionWEB.__UsuarioWEB.responsavel && __SessionWEB.__UsuarioWEB.alu_id > 0)
                {
                    alu_id = __SessionWEB.__UsuarioWEB.alu_id;
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.pes_idAluno);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }

                if (alu_id <= 0)
                {
                    sMensagemLog = "Usuário não autorizado a exibir Area do Aluno: usu_id: " + __SessionWEB.__UsuarioWEB.Usuario.usu_id.ToString();
                    throw new ValidationException("Usuário não autorizado a exibir o Area do Aluno.");
                }

                ACA_Aluno entityAluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                    alu_id = alu_id
                });
                bool boletimBloqueado           = false;
                bool compromissoEstudoBloqueado = !ACA_TipoCicloBO.VerificaSeExibeCompromissoAluno(alu_id);

                if (entityAluno.alu_possuiInformacaoSigilosa && entityAluno.alu_bloqueioBoletimOnline)
                {
                    if (__SessionWEB.__UsuarioWEB.responsavel)
                    {
                        Fieldset2.Visible            = true;
                        lblBoletimNaoDisponivel.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("AreaAluno", "Index.lblBoletimNaoDisponivel.Text").ToString(), UtilBO.TipoMensagem.Informacao);
                        Fieldset1.Visible            = false;
                        return;
                    }
                    else
                    {
                        boletimBloqueado = true;
                    }
                }

                if (arq_idFoto > 0)
                {
                    string      imagem  = "";
                    CFG_Arquivo arquivo = new CFG_Arquivo {
                        arq_id = arq_idFoto
                    };
                    CFG_ArquivoBO.GetEntity(arquivo);
                    byte[] bufferData = arquivo.arq_data;

                    using (MemoryStream stream = new MemoryStream(bufferData))
                    {
                        System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
                        imagem = Convert.ToBase64String(stream.ToArray());
                    }

                    imgFotoAluno.ImageUrl = "data:" + arquivo.arq_typeMime + ";base64," + imagem;
                }

                DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id);

                if (dtCurriculo.Rows.Count <= 0)
                {
                    sMensagemLog = "Aluno não possui dados para a Area do Aluno: alu_id: " + alu_id.ToString();
                    throw new ValidationException("Aluno não possui dados para a Area do Aluno.");
                }

                string nomeAluno         = dtCurriculo.Rows[0]["pes_nome"].ToString();
                string matriculaEstadual = dtCurriculo.Rows[0]["alc_matriculaEstadual"].ToString();
                string numeroMatricula   = dtCurriculo.Rows[0]["alc_matricula"].ToString();

                //Nome Aluno
                lblInformacaoAluno.Text = "Aluno: <b>" + nomeAluno + "</b><br/>";

                //Matricula
                if (!string.IsNullOrEmpty(ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id)))
                {
                    if (!string.IsNullOrEmpty(matriculaEstadual))
                    {
                        lblInformacaoAluno.Text += " <b>" + GestaoEscolarUtilBO.nomePadraoMatriculaEstadual(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": " + "</b>" + matriculaEstadual + "&nbsp;&nbsp;&nbsp;";
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(numeroMatricula))
                    {
                        lblInformacaoAluno.Text += GetGlobalResourceObject("Mensagens", "MSG_NUMEROMATRICULA") + ": <b>" + numeroMatricula + "</b>" + "&nbsp;&nbsp;&nbsp;";
                    }
                }

                __SessionWEB.__UsuarioWEB.alu_id = Convert.ToInt64(dtCurriculo.Rows[0]["alu_id"].ToString());
                __SessionWEB.__UsuarioWEB.esc_id = Convert.ToInt32(dtCurriculo.Rows[0]["esc_id"].ToString());
                __SessionWEB.__UsuarioWEB.uni_id = Convert.ToInt32(dtCurriculo.Rows[0]["uni_id"].ToString());
                __SessionWEB.__UsuarioWEB.mtu_id = Convert.ToInt32(dtCurriculo.Rows[0]["mtu_id"].ToString());
                __SessionWEB.__UsuarioWEB.tpc_id = Convert.ToInt32(string.IsNullOrEmpty(dtCurriculo.Rows[0]["tpc_id"].ToString()) ? "-1" : dtCurriculo.Rows[0]["tpc_id"].ToString());

                int mod_id = GetModuloId;

                string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                    __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                    __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                    mod_id
                    );
                if (String.IsNullOrEmpty(menuXml))
                {
                    menuXml = "<menus/>";
                }
                menuXml = menuXml.Replace("url=\"~/", String.Concat("url=\"", ApplicationWEB._DiretorioVirtual));

                // Verifica se o aluno está com o boletim bloqueado. Se estiver, retiro do menu.
                int indiceBoletim = menuXml.IndexOf("<menu id=\"Boletim");
                if (boletimBloqueado && indiceBoletim >= 0)
                {
                    menuXml = menuXml.Remove(indiceBoletim, menuXml.IndexOf("/>", indiceBoletim) - indiceBoletim + 2);
                }

                IDictionary <string, ICFG_Configuracao> configuracao;
                MSTech.GestaoEscolar.BLL.CFG_ConfiguracaoBO.Consultar(eConfig.Academico, out configuracao);
                if (configuracao.ContainsKey("AppURLAreaAlunoInfantil") && !string.IsNullOrEmpty(configuracao["AppURLAreaAlunoInfantil"].cfg_valor))
                {
                    string url            = HttpContext.Current.Request.Url.AbsoluteUri;
                    string configInfantil = configuracao["AppURLAreaAlunoInfantil"].cfg_valor;

                    if (url.Contains(configInfantil))
                    {
                        menuXml = menuXml.Replace("menu id=\"Boletim Online\"", "menu id=\"" + (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "MenuBoletimInfantil") + "\"");
                    }
                }

                // Verifica se o aluno está com o compromisso estudo bloqueado. Se estiver, retiro do menu.
                int indiceCompromissoEstudo = menuXml.IndexOf("<menu id=\"Compromisso de Estudo");
                if (compromissoEstudoBloqueado && indiceCompromissoEstudo >= 0)
                {
                    menuXml = menuXml.Remove(indiceCompromissoEstudo, menuXml.IndexOf("/>", indiceCompromissoEstudo) - indiceCompromissoEstudo + 2);
                }

                XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
                XPathDocument        treeDoc = new XPathDocument(reader);
                XslCompiledTransform siteMap = new XslCompiledTransform();

                if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapResponsavel.xslt"));
                }
                else
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMap.xslt"));
                }

                StringWriter sw = new StringWriter();
                siteMap.Transform(treeDoc, null, sw);
                string result = sw.ToString();

                List <CFG_ModuloClasse> lstModClasse = CFG_ModuloClasseBO.SelecionaAtivos(ApplicationWEB.AreaAlunoSistemaID);

                if (lstModClasse.Any())
                {
                    //Carrega a lista de link e moduloId
                    Dictionary <string, string> linkModulo = new Dictionary <string, string>();
                    string[] linkMenusXml = menuXml.Split(new[] { "<menu id=\"" }, StringSplitOptions.None);
                    if (linkMenusXml.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenusXml)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("url=\"") + 5, item.Substring(item.IndexOf("url=\"") + 5).IndexOf("\""));
                                string modulo = item.Substring(0, item.IndexOf("\""));
                                linkModulo.Add(link, modulo);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Carrega a lista de link e classe css atual
                    Dictionary <string, string> linkClasse = new Dictionary <string, string>();
                    string[] linkMenus = result.Split(new[] { "<li class=\"txtSubMenu\"><a " }, StringSplitOptions.None);
                    if (linkMenus.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenus)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("href=\"") + 6, item.Substring(item.IndexOf("href=\"") + 6).IndexOf("\""));
                                string classe = item.Substring(item.IndexOf("class=\"") + 7, item.Substring(item.IndexOf("class=\"") + 7).IndexOf("\""));
                                linkClasse.Add(link, "class=\"" + classe + "\" " + "href=\"" + link);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Troca a classe css atual do link conforme o que está configurado na tabela filtrando pelo modulo
                    if (linkModulo.Count > 0 && linkClasse.Count > 0)
                    {
                        foreach (var item in linkClasse)
                        {
                            string modulo = linkModulo[item.Key];
                            if (!string.IsNullOrEmpty(modulo) && lstModClasse.Any(p => p.mod_nome == modulo))
                            {
                                string classeCfg = lstModClasse.Where(p => p.mod_nome == modulo).FirstOrDefault().mdc_classe;
                                if (!string.IsNullOrEmpty(classeCfg))
                                {
                                    result = result.Replace(item.Value, "class=\"link " + classeCfg + "\" " + "href=\"" + item.Key);
                                }
                            }
                        }
                    }
                }

                //Control ctrl = Page.ParseControl(result);
                _lblSiteMap.Text = result;

                if (!string.IsNullOrEmpty(ApplicationWEB.UrlAcessoExternoBoletimOnline))
                {
                    string[] crp_ordem = ApplicationWEB.Crp_ordem_AcessoExternoBoletimOnline;
                    // Só exibe o ícone caso o aluno esteja em alguma das séries parametrizadas.
                    if (crp_ordem.Contains(dtCurriculo.Rows[0]["crp_ordem"].ToString()))
                    {
                        // Seta um nó de menu para acesso ao site externo.
                        ulItemAcessoExterno.Visible     = true;
                        lblAcessoExterno.Text           = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                        lnkAcessoExterno.HRef           = ApplicationWEB.UrlAcessoExternoBoletimOnline;
                        h2TituloAcessoExterno.InnerHtml = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                    }
                }

                sMensagemLog = "Area do Aluno exibida para aluno: alu_id: " + alu_id.ToString();
                ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Query, sMensagemLog);
            }
            catch (ValidationException ex)
            {
                lblMessage.Text       = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text       = UtilBO.GetErroMessage("Erro ao exibir a Area do aluno", UtilBO.TipoMensagem.Erro);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }