コード例 #1
0
        public static List <EnvoltorioSubGrupo> ListarSubGruposPorIdGrupo(int grpId, int rolId)
        {
            List <EnvoltorioSubGrupo> lista = new List <EnvoltorioSubGrupo>();
            List <VCFramework.Entidad.RrhhSubgrupoMenu> listaProcesar = ListarSubGruposPorIdGrupo(grpId);

            if (listaProcesar != null && listaProcesar.Count > 0)
            {
                foreach (Entidad.RrhhSubgrupoMenu subgrupo in listaProcesar)
                {
                    EnvoltorioSubGrupo env = new EnvoltorioSubGrupo();
                    env.GrpId         = subgrupo.GrpId;
                    env.SgrpActivo    = subgrupo.SgrpActivo;
                    env.SgrpEliminado = subgrupo.SgrpEliminado;
                    env.SgrpId        = subgrupo.SgrpId;
                    env.SgrpItem      = subgrupo.SgrpItem;
                    env.SgrpUrl       = subgrupo.SgrpUrl;

                    List <VCFramework.Entidad.RrhhRlRolMenu> rls = RrhhRlRolMenu.ListarRlPorRolId(rolId);
                    bool chekeado = false;
                    if (rls != null && rls.Count > 0)
                    {
                        if (rls.Exists(p => p.SgrpId == subgrupo.SgrpId))
                        {
                            chekeado = true;
                        }
                    }

                    env.Checked = chekeado;
                    env.RolId   = rolId;

                    lista.Add(env);
                }
            }


            return(lista);
        }
コード例 #2
0
        public static List <ItemMenu> ArmarMenu(int rolId)
        {
            List <ItemMenu> listaDevolver = new List <ItemMenu>();
            //primero nos traemos todos los grupos
            List <Entidad.RrhhGrupoMenu> grupos = RrhhGrupoMenu.ListarGrupos();

            if (grupos != null)
            {
                //ahora recorremos los grupos y nos traemos los subgrupos
                foreach (Entidad.RrhhGrupoMenu grupo in grupos)
                {
                    //provechamos de agregar los item al envoltorio
                    ItemMenu envoltorio = new ItemMenu();
                    envoltorio.Name        = grupo.GrpItem;
                    envoltorio.NavigateUrl = grupo.GrpUrl;
                    envoltorio.Text        = grupo.GrpItem;
                    //por mientras visible siempre
                    envoltorio.Visible = true;
                    //ahora hacemos la llamada de negocio para traernos los subgrupos por grupo
                    List <Entidad.RrhhSubgrupoMenu> subgrupos = RrhhSubgrupoMenu.ListarSubGruposPorIdGrupo(grupo.GrpId);
                    //recorremos los subgrupos para asociarlos al menu
                    envoltorio.ItemsDelGrupo = new List <SubItemMenu>();
                    if (subgrupos != null && subgrupos.Count > 0)
                    {
                        foreach (Entidad.RrhhSubgrupoMenu subgrupo in subgrupos)
                        {
                            //si en ese subgrupo existe el rol lo agregamos, para eso verificamos la relacion
                            List <Entidad.RrhhRlRolMenu> listaRls = RrhhRlRolMenu.ListarRlPorRolId(rolId);
                            bool existeRol = false;
                            if (listaRls != null && listaRls.Count > 0)
                            {
                                existeRol = listaRls.Exists(p => p.RolId == rolId && p.SgrpId == subgrupo.SgrpId);
                            }

                            SubItemMenu items = new SubItemMenu();
                            items.Name        = subgrupo.SgrpItem;
                            items.NavigateUrl = subgrupo.SgrpUrl;
                            items.Text        = subgrupo.SgrpItem;
                            items.ToolTip     = subgrupo.SgrpItem;



                            if (existeRol)
                            {
                                items.Visible = true;
                            }
                            else
                            {
                                items.Visible = false;
                            }

                            //los agregamos a la lista del envoltorio
                            envoltorio.ItemsDelGrupo.Add(items);
                        }
                    }
                    //acá debieramos agregar a la lista que devolvemos el elemento completo,
                    //pero antes evaluamos si tiene subitems visibles para mostrarlos
                    //entonces
                    int cantidadVisiblesSubItem = 0;
                    if (envoltorio.ItemsDelGrupo != null && envoltorio.ItemsDelGrupo.Count > 0)
                    {
                        cantidadVisiblesSubItem = envoltorio.ItemsDelGrupo.Count(p => p.Visible == true);
                    }

                    if (cantidadVisiblesSubItem == 0)
                    {
                        //el grupo queda no visible
                        envoltorio.Visible = false;
                    }

                    listaDevolver.Add(envoltorio);
                }
            }

            return(listaDevolver);
        }