/// <summary>Displays the menu and attempts to get a menu item select from the user. /// If the user selects an item, it works is performed on that selected item.</summary> private async Task <ConsoleMenuItemResponse> DoWorkAsync() { int?userChoice = _promptHelper.GetNumber(null, 1); var result = new ConsoleMenuItemResponse(false, true); if (userChoice.HasValue) { var currentMenuItems = _menuStack.Peek(); var worker = currentMenuItems.MenuItems.FirstOrDefault(w => w.ItemNumber == userChoice.Value); if (worker == null) { ShowOneMenu(true); _console.WriteLine("*******Please enter a valid number*******"); } else { result = await worker.Item.WorkAsync(); } } else { ShowOneMenu(true); _console.WriteLine("*******Please enter a valid number*******"); } return(result); }