public void ShowMenu() { IDialogView dialogView = uiFactory.CreateDialogView(); dialogView.ShowMessage("MENU"); IMenuView menuView = uiFactory.CreateMenuView(); List <string> menuItems = commands.Keys.ToList(); menuItems.Add("Exit"); while (true) { string result = menuView.ShowMenu(menuItems); int parsedResult = -1; if (int.TryParse(result, out parsedResult)) { if (parsedResult <= commands.Count) { commandProcessor.Execute(commands.Values.ToList().ElementAt(parsedResult - 1)); } else if (parsedResult == commands.Count + 1) { dialogView.ShowMessage("Exiting"); return; } else { dialogView.ShowMessage("No such menu item"); } } } }