Esempio n. 1
0
        /// <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);
        }