Example #1
0
        private void AddOptionsTo(IMenu menu, params IMenuOption <IMenuItem>[] menuOptions)
        {
            foreach (var menuOption in menuOptions)
            {
                switch (menuOption)
                {
                case IMenuOption <IMenu> subMenu:
                    menu.AddOptions(subMenu);
                    break;

                case IMenuOption <IMenuFunc> menuFunc:
                    menu.AddOptions(menuFunc);
                    break;

                case null:
                    throw new ArgumentNullException(nameof(menuOption));

                default:
                    throw new InvalidOperationException($"{nameof(menuOption)} is not a valid type.");
                }
            }
        }