/// <summary>
        /// Add menu item from class which implements IConsoleTask
        /// </summary>
        /// <param name="menu"></param>
        /// <param name="task"></param>
        /// <param name="waitForCompletion"></param>
        /// <returns></returns>
        public static ConsoleMenu Add(this ConsoleMenu menu, IConsoleTask task, bool waitForCompletion = true, string overrideTitle = null, ConsoleKey?overrideKey = null)
        {
            var key   = overrideKey ?? ConsoleKey.A + menu.ItemCount;
            var title = overrideTitle ?? task.Title;

            if (string.IsNullOrWhiteSpace(title))
            {
                title = task.GetType().Name.FromCamelCaseToSentence();
            }

            var item = new ConsoleMenuItem(
                key,
                title,
                () => menu.RunTask(task.Execute()),
                waitForCompletion);

            menu.Add(item);
            return(menu);
        }
示例#2
0
 private static void ConsoleProgram_TaskError(Exception ex, IConsoleTask consoleTask)
 {
     Console.WriteLine(ex);
 }