Exemplo n.º 1
0
        public ActionResult MenuIndex()
        {
            MenuTree        mt           = new MenuTree();
            List <MenuTree> listmenuTree = mt.GetTreeData();
            List <MenuTree> menuTree     = mt.GetMenuTree(listmenuTree);

            return(View(menuTree));
        }
Exemplo n.º 2
0
        //public ActionResult Index()
        //{
        //    ObjectData objtemp = new ObjectData();
        //    List<ObjectData> listobjnullsite = objtemp.GetObjects(); //load all the available uploaded list which has site id as null
        //    //List<ObjectData> menuTree = objtemp.GetMenuTree(listobjnullsite, listobjnullsite.FirstOrDefault().ObjType, listobjnullsite.FirstOrDefault().ObjSubType);
        //    List<ObjectData> menuTree = objtemp.GetMenuTree(listobjnullsite, "OT1");
        //    return View(menuTree);
        //}

        public JsonResult Test()
        {
            MenuTree        mt           = new MenuTree();
            List <MenuTree> listmenuTree = mt.GetTreeData();
            List <MenuTree> menuTree     = mt.GetMenuTree(listmenuTree);

            //List<MenuTree> menuTree = mt.GetMenuTree(listmenuTree, listmenuTree.FirstOrDefault().ObjType);
            return(Json(menuTree, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取菜单树
        /// </summary>
        /// <returns></returns>
        // [EntityAuthorize(PermissionFlags.Detail)]
        public List <MenuTree> GetMenu()
        {
            var user = ManageProvider.User ?? XCode.Membership.UserX.FindAll().FirstOrDefault();

            var fact = ObjectContainer.Current.Resolve <IMenuFactory>();

            var menus = fact.Root.Childs;

            if (user?.Role != null)
            {
                menus = fact.GetMySubMenus(fact.Root.ID, user);
            }

            // 如果顶级只有一层,并且至少有三级目录,则提升一级
            if (menus.Count == 1 && menus[0].Childs.All(m => m.Childs.Count > 0))
            {
                menus = menus[0].Childs;
            }

            menus = menus.Where(m => m.Visible).ToList();

            var menuTree = MenuTree.GetMenuTree(pMenuTree =>
            {
                return(fact.GetMySubMenus(pMenuTree.ID, user).Where(m => m.Visible).ToList());
            }, list =>
            {
                var menuList = (from menu in list
                                // where m.Visible
                                select new MenuTree
                {
                    ID = menu.ID,
                    Name = menu.DisplayName,
                    Url = Url.Content(menu.Url),
                    Icon = menu.Icon,
                    Class = ""
                }).ToList();
                return(menuList.Count > 0 ? menuList : null);
            }, menus.ToList());

            var childs = menuTree[0].Children;

            return(menuTree);
        }
        /// <summary>
        /// 获取菜单
        /// </summary>
        /// <returns>菜单列表</returns>
        private IList <MenuTree> GetMenu()
        {
            var user = _provider.Current as IUser ?? XCode.Membership.User.FindAll().FirstOrDefault();

            var fact  = ManageProvider.Menu;
            var menus = fact.Root.Childs;

            if (user?.Role != null)
            {
                menus = fact.GetMySubMenus(fact.Root.ID, user, true);
            }

            // 如果顶级只有一层,并且至少有三级目录,则提升一级
            if (menus.Count == 1 && menus[0].Childs.All(m => m.Childs.Count > 0))
            {
                menus = menus[0].Childs;
            }

            var menuTree = MenuTree.GetMenuTree(pMenuTree =>
            {
                var subMenus = fact.GetMySubMenus(pMenuTree.ID, user, true);
                return(subMenus);
            }, list =>
            {
                var menuList = (from menu in list
                                // where m.Visible
                                select new MenuTree
                {
                    ID = menu.ID,
                    Name = menu.Name,
                    DisplayName = menu.DisplayName ?? menu.Name,
                    Url = menu.Url,
                    Icon = menu.Icon,
                    Visible = menu.Visible,
                    ParentID = menu.ParentID,
                    Permissions = menu.Permissions
                }).ToList();
                return(menuList.Count > 0 ? menuList : null);
            }, menus);

            return(menuTree);
        }