コード例 #1
0
        private MenuLinkItem GenerateSubMenuModel(IEnumerable <MenuLinkItem> items, MenuLinkItem item)
        {
            item.ChildItems =
                items.Where(c =>
                            c.ParentId == item.Id && (!c.Roles.Any() || c.Roles.Any(r => _userService.CurrentUserRole == r))).OrderBy(c => c.Order)
                .ToArray();

            foreach (var topMenuItem in item.ChildItems)
            {
                topMenuItem.ChildItems = items.Where(c =>
                                                     c.ParentId == topMenuItem.Id && (!c.Roles.Any() || c.Roles.Any(r => _userService.CurrentUserRole == r)))
                                         .Select(t => GenerateSubMenuModel(items, t)).Where(t => t != null).ToArray();
            }

            return(item);
        }
コード例 #2
0
        /*
         * Menu Categories
         */
        private void PopulateCategorieList(List <MenuCategorie> menuCategorieList)
        {
            flowLayoutPanelMenuCategorie.Controls.Clear();

            foreach (MenuCategorie categorie in menuCategorieList)
            {
                MenuLinkItem menuLink = new MenuLinkItem(categorie.CategorieName);

                menuLink.MenuLinkItemClick += (sender, EventArgs) => {
                    MenuCategorieLinkItem_Click(categorie.MenuItems);
                    // Set the active state to true, so we can change the styling
                    menuLink.SetActiveState = true;
                };

                flowLayoutPanelMenuCategorie.Controls.Add(menuLink);
            }
        }
コード例 #3
0
        /*
         * Menu Main
         */
        private void PopulateMenu()
        {
            if (flowLayoutPanelMenu.Controls.Count == 0)
            {
                Menu_Service menu_service = new Menu_Service();

                // Get all menu items from the database
                List <MainMenu> menuList = menu_service.GetFullMenu();

                foreach (MainMenu menu in menuList)
                {
                    // Create a custom usercontrol with the data from the 'Drinks, Dinner, and Lunch' menu, for the windows forms app.
                    MenuLinkItem menuLink = new MenuLinkItem(menu.MenuName);

                    // Add a custom eventHandler to show the categories corresponding with the clicked menu
                    menuLink.MenuLinkItemClick += (sender, EventArgs) => {
                        MenuLinkItem_Click(menu.MenuCategories);
                        lbl_ActiveMenu.Text = menu.MenuName + " Menu";
                    };

                    flowLayoutPanelMenu.Controls.Add(menuLink);
                }
            }
        }