Exemple #1
0
        /// <summary>
        /// Adiciona as funções que este menu possui como filhas do mesmo
        /// </summary>
        /// <param name="node"></param>
        /// <param name="funcionario"></param>
        /// <param name="tipoFunc"></param>
        /// <param name="funcoes"></param>
        /// <param name="menu"></param>
        private void CriaFuncoes(ref TreeNode node, Funcionario funcionario, TipoFuncionario tipoFunc, List <FuncaoMenu> funcoes, Glass.Global.Negocios.Entidades.Menu menu)
        {
            var funcoesMenu = funcoes.Where(f => f.IdMenu == menu.IdMenu);

            foreach (var funcao in funcoesMenu)
            {
                var nodeFuncao = new TreeNode(funcao.Descricao);
                nodeFuncao.Value        = string.Format("f|{0}", funcao.IdFuncaoMenu.ToString());
                nodeFuncao.SelectAction = TreeNodeSelectAction.None;

                if (UserInfo.GetUserInfo.IsAdministrador)
                {
                    nodeFuncao.ShowCheckBox = true;
                    nodeFuncao.ImageUrl     = "~/Images/gear.gif";

                    // Verifica se o funcionário/tipo possui acesso à esta função
                    if (funcionario != null)
                    {
                        nodeFuncao.Checked = funcionario.ConfigsFuncaoFunc.Any(f => f.IdFuncaoMenu == funcao.IdFuncaoMenu);
                    }
                    else
                    {
                        nodeFuncao.Checked = tipoFunc.ConfigsFuncaoTipoFunc.Any(f => f.IdFuncaoMenu == funcao.IdFuncaoMenu);
                    }
                }
                else
                {
                    // Verifica se o funcionário/tipo possui acesso à esta função
                    if (funcionario != null)
                    {
                        nodeFuncao.ImageUrl += funcionario.ConfigsFuncaoFunc.Any(f => f.IdFuncaoMenu == funcao.IdFuncaoMenu) ? "~/Images/validacao.gif" : "";
                    }
                    else
                    {
                        nodeFuncao.ImageUrl += tipoFunc.ConfigsFuncaoTipoFunc.Any(f => f.IdFuncaoMenu == funcao.IdFuncaoMenu) ? "~/Images/validacao.gif" : "";
                    }
                }

                node.ChildNodes.Add(nodeFuncao);
            }
        }
Exemple #2
0
 /// <summary>
 /// Função recursiva que monta a treeview em vários níveis
 /// </summary>
 /// <param name="nodePai"></param>
 /// <param name="funcionario"></param>
 /// <param name="tipoFunc"></param>
 /// <param name="idMenuInicial"></param>
 /// <param name="menuPai"></param>
 /// <param name="menusModulo"></param>
 /// <param name="funcoes"></param>
 protected void CriaItensTreeView(ref TreeNode nodePai, Funcionario funcionario, TipoFuncionario tipoFunc, Glass.Global.Negocios.Entidades.Menu menuPai, List <Glass.Global.Negocios.Entidades.Menu> menusModulo, List <FuncaoMenu> funcoes)
 {
     // Caso este menu possua filhos, adiciona-os na iteração abaixo
     foreach (var menu in menusModulo.Where(f => f.IdMenuPai == menuPai.IdMenu))
     {
         nodePai.ChildNodes.Add(PreencheNo(funcionario, tipoFunc, menusModulo, funcoes, menu));
     }
 }
Exemple #3
0
        /// <summary>
        /// Preenche um nó da treeview
        /// </summary>
        /// <param name="nodePai"></param>
        /// <param name="funcionario"></param>
        /// <param name="menusModulo"></param>
        /// <param name="funcoes"></param>
        /// <param name="menu"></param>
        private TreeNode PreencheNo(Funcionario funcionario, TipoFuncionario tipoFunc, List <Glass.Global.Negocios.Entidades.Menu> menusModulo, List <FuncaoMenu> funcoes, Glass.Global.Negocios.Entidades.Menu menu)
        {
            var node = new TreeNode(menu.Nome);

            node.Value        = string.Format("m|{0}", menu.IdMenu.ToString());
            node.SelectAction = TreeNodeSelectAction.Expand;
            node.Expanded     = false;
            CriaFuncoes(ref node, funcionario, tipoFunc, funcoes, menu);

            // Cria os filhos deste menu
            CriaItensTreeView(ref node, funcionario, tipoFunc, menu, menusModulo, funcoes);

            if (UserInfo.GetUserInfo.IsAdministrador)
            {
                node.ImageUrl     = "~/Images/Menu.png";
                node.ShowCheckBox = funcionario == null || funcionario.TipoFuncionario.IdTipoFuncionario != (int)Data.Helper.Utils.TipoFuncionario.MarcadorProducao;

                // Verifica se o usuário possui acesso à este menu
                if (funcionario != null)
                {
                    node.Checked = funcionario.ConfigsMenuFunc.Any(f => f.IdMenu == menu.IdMenu);
                }
                else
                {
                    node.Checked = tipoFunc.ConfigsMenuTipoFunc.Any(f => f.IdMenu == menu.IdMenu);
                }
            }
            else
            {
                // Verifica se o funcionário/tipo possui acesso à esta função
                if (funcionario != null)
                {
                    node.ImageUrl += funcionario.ConfigsMenuFunc.Any(f => f.IdMenu == menu.IdMenu) ? "~/Images/validacao.gif" : "";
                }
                else
                {
                    node.ImageUrl += tipoFunc.ConfigsMenuTipoFunc.Any(f => f.IdMenu == menu.IdMenu) ? "~/Images/validacao.gif" : "";
                }
            }

            return(node);
        }