Ejemplo n.º 1
0
        public static IEnumerable<Entidades.ViewModels.Menu> GetMenusTipoComponente(TipoComponente componente)
        {
            var menu = new List<Entidades.ViewModels.Menu>();

            var menuRepo = new MenuRepository();

            var padres = menuRepo.GetMenusPorComponenteYPadre(componente, 0);

            foreach (var padre in padres)
            {
                var menuPadre = new Entidades.ViewModels.Menu()
                {
                    Nombre = padre.Nombre,
                    Controlador = padre.Controlador,
                    Accion = padre.Accion,
                    Icono = padre.Icono,
                    Orden = padre.Orden,
                    Url = padre.Url,
                    Accedible = padre.Accedible
                };

                // agregar hijos

                var hijosPadre = menuRepo.GetMenusPorComponenteYPadre(componente, padre.Id);
                foreach (var hijoPrimero in hijosPadre)
                {
                    var menuHijoPrimero = new Entidades.ViewModels.Menu()
                    {
                        Nombre = hijoPrimero.Nombre,
                        Controlador = hijoPrimero.Controlador,
                        Accion = hijoPrimero.Accion,
                        Icono = hijoPrimero.Icono,
                        Orden = hijoPrimero.Orden,
                        Url = hijoPrimero.Url,
                        Accedible = padre.Accedible
                    };

                    menuPadre.SubMenus.Add(menuHijoPrimero);
                }

                menu.Add(menuPadre);
            }

            return menu;
        }