private void AddGroupsRecursive(MesMenuDefinitionBase menu, MesStandardMenuItem menuModel) { List <MesMenuItemGroupDefinition> groups = _menuItemGroups .Where(x => x.Parent == menu) .Where(x => !_excludeMenuItemGroups.Contains(x)) .OrderBy(x => x.SortOrder) .ToList(); for (Int32 i = 0; i < groups.Count; i++) { MesMenuItemGroupDefinition group = groups[i]; IOrderedEnumerable <MesMenuItemDefinition> menuItems = _menuItems .Where(x => x.Group == group) .Where(x => !_excludeMenuItems.Contains(x)) .OrderBy(x => x.SortOrder); foreach (MesMenuItemDefinition menuItem in menuItems) { MesStandardMenuItem menuItemModel = (menuItem.CommandDefinition != null) ? new MesCommandMenuItem(_commandService.GetCommand(menuItem.CommandDefinition), menuModel) : (MesStandardMenuItem) new MesTextMenuItem(menuItem); AddGroupsRecursive(menuItem, menuItemModel); menuModel.Add(menuItemModel); } if (i < groups.Count - 1 && menuItems.Any()) { menuModel.Add(new MesMenuItemSeparator()); } } }
public MesTextMenuItem(MesMenuDefinitionBase menuDefinition) { _menuDefinition = menuDefinition; }
public MesMenuItemGroupDefinition(MesMenuDefinitionBase parent, Int32 sortOrder) { Parent = parent; SortOrder = sortOrder; }