コード例 #1
0
        public void Build()
        {
            var menu = new CompositeMenu("CompositeMenu1")
            {
                DisplayName     = "主菜单",
                Icon            = "",
                CompositeMenuId = null,
                RootMenuId      = null,
                PageName        = null,
                PageDataName    = null,
                Menus           = new List <MenuBase>()
            };

            var homeMenu = new LeafMenu("LeafMenu1")
            {
                DisplayName  = "主页",
                Icon         = "",
                RootMenu     = menu,
                PageName     = "ContentPage1Name",
                PageDataName = "PageData1Name",
            };

            var postMenu = new CompositeMenu("CompositeMenu2")
            {
                DisplayName = "文章分类",
                RootMenu    = menu,
            };

            menu.Menus.Add(homeMenu);

            menu.Menus.Add(postMenu);

            _context.Menus.Add(menu);
        }
コード例 #2
0
        private MenuBase CreateRootMenuForDto(MenuDto menuDto)
        {
            MenuBase menu;

            if (menuDto.IsCompositeMenu())
            {
                CompositeMenu compositeMenu;
                menu = compositeMenu = new CompositeMenu(menuDto.Name);
                compositeMenu.Menus = new List <MenuBase>();
                if (menuDto.Menus != null)
                {
                    foreach (var childMenuDto in menuDto.Menus)
                    {
                        var childMenu = CreateRootMenuForDto(childMenuDto);
                        childMenu.SetRootMenu(compositeMenu);
                        compositeMenu.Menus.Add(childMenu);
                    }
                }
            }
            else if (menuDto.IsLeafMenu())
            {
                menu = new LeafMenu(menuDto.Name);
            }
            else
            {
                throw new UserFriendlyException($"创建菜单失败,菜单{menuDto.Name}未指定类型");
            }

            menu.DisplayName  = menuDto.DisplayName;
            menu.Icon         = menuDto.Icon;
            menu.PageName     = menuDto.PageName;
            menu.PageDataName = menuDto.PageDataName;

            return(menu);
        }
コード例 #3
0
    public IMenuBuilder AddLeaf(string name)
    {
        var leafMenu = new LeafMenu {
            Name = name
        };

        leafMenu.ParentId = menu.Id;
        menu.AddSubMenu(leafMenu);
        return(this);
    }
コード例 #4
0
        public AddLeafMenuOutput AddLeafMenu(AddLeafMenuInput input)
        {
            LeafMenu leafMenu = new LeafMenu(input.Name)
            {
                CompositeMenuId = input.ParentMenuId,
                DisplayName     = input.DisplayName,
                Icon            = input.Icon
            };

            _menuManager.AddLeafMenu(leafMenu);

            return(new AddLeafMenuOutput());
        }
コード例 #5
0
        public AddLeafMenuOutput AddLeafMenu(AddLeafMenuInput input)
        {
            LeafMenu leafMenu = new LeafMenu(input.Name)
            {
                CompositeMenuId = input.ParentMenuId,
                DisplayName     = input.DisplayName,
                Icon            = input.Icon
            };

            var pageData = GetPageData(input.PageName, input.PageDataName);

            leafMenu.PageData = pageData;

            _menuManager.AddLeafMenu(leafMenu);

            return(new AddLeafMenuOutput());
        }
コード例 #6
0
        public void Build()
        {
            var pageData = _context.PageDatas.FirstOrDefault(e => e.Name == "PageData1Name");

            var menu = new CompositeMenu("Main")
            {
                DisplayName     = "主菜单",
                Icon            = "",
                CompositeMenuId = null,
                RootMenuId      = null,
                PageName        = null,
                PageDataName    = null,
                Menus           = new List <MenuBase>()
                {
                }
            };

            var homeMenu = new LeafMenu("Home")
            {
                DisplayName  = "主页",
                Icon         = "",
                RootMenu     = menu,
                PageName     = "ContentPage1Name",
                PageDataName = "PageData1Name",
            };

            var postMenu = new CompositeMenu("post")
            {
                DisplayName = "文章分类",
                RootMenu    = menu,
            };

            menu.Menus.Add(homeMenu);

            menu.Menus.Add(postMenu);

            _context.Menus.Add(menu);
        }