示例#1
0
        private List <MenuTree> RecursionMenuButton(List <RoleMenuButtonList> data, List <DistinctMenu> menuData, Guid menuId, Guid roleId)
        {
            var list      = new List <MenuTree>();
            var childMenu = menuData.Where(d => d.ParentId == menuId);

            foreach (var menu in childMenu)
            {
                var buttonList = new List <ButtonTree>();
                var menuButton = new MenuTree();
                var attributes = new MenuButtonAttributes();
                menuButton.Id           = menu.Id;
                menuButton.Title        = menu.Name;
                attributes.MenuButtonId = null;
                menuButton.Attributes   = attributes;
                var buttonTree = data.Where(d => d.MenuId == menu.Id && d.ButtonId.HasValue);
                if (buttonTree.Any())
                {
                    foreach (var button in buttonTree)
                    {
                        var buttons         = new ButtonTree();
                        var buttonAttribute = new MenuButtonAttributes();
                        buttons.Id                   = roleId;
                        buttons.Title                = button.ButtonName;
                        buttons.Checked              = button.Checked;
                        buttons.Attributes           = buttonAttribute;
                        buttonAttribute.MenuButtonId = button.MenuButtonId;
                        buttonList.Add(buttons);
                    }
                }
                menuButton.Children = buttonList;
                list.Add(menuButton);
            }
            return(list);
        }
示例#2
0
        private List <Tree> GetAllMenuButtonByRoleIdSelect(List <RoleMenuButtonList> data, Guid id)
        {
            List <Tree> list             = new List <Tree>();
            var         distinctMenuData = data.GroupBy(d => d.MenuId).Select(d => new DistinctMenu
            {
                Id       = d.Key,
                Name     = d.Max(x => x.MenuName),
                ParentId = d.Max(x => x.ParentId)
            }).ToList();
            var topData = data.Where(d => d.ParentId == null);

            foreach (var item in topData)
            {
                var menuButton = new Tree();
                var attributes = new MenuButtonAttributes();
                menuButton.Id           = item.MenuId;
                menuButton.Title        = item.MenuName;
                attributes.MenuButtonId = null;
                menuButton.Attributes   = attributes;
                menuButton.Spread       = true;
                menuButton.Children     = RecursionMenuButton(data, distinctMenuData, item.MenuId, id);
                list.Add(menuButton);
            }
            return(list);
        }