private void PrintMenu() { if (Settings.ClearConsole) { Console.Clear(); } Console.WriteLine(Settings.MenuHeader); foreach (var item in Commands) { item.Value.PrintItemMenu(); } if (Settings.Help) { HelpCommand.PrintItemMenu(); } ExitCommand.PrintItemMenu(); Console.Write(Settings.MenuFooter); var menuId = Input.ReadInt(Commands.Values.Min(c => c.MenuID).Value, ExitCommand.MenuID.Value); if (Commands.Count(c => c.Value.MenuID == menuId) > 0) { SelectedCommand = Commands.First(c => c.Value.MenuID == menuId).Key; } else if (menuId == HelpCommand.MenuID) { PrintHelp(); } else if (menuId == ExitCommand.MenuID) { Environment.Exit(0); } if (Commands[SelectedCommand].ValidOptions.Count > 0) { Console.WriteLine("\nPlease specify options: "); foreach (var opt in Commands[SelectedCommand].ValidOptions) { Options[opt].PrintItemOption(); GetOptionInput(opt); } } }