コード例 #1
0
        public static TItem?SelectItem <TItem>(this ISysConsole sysConsole, IEnumerable <TItem> items, Func <TItem, string?> getCaption, TItem?defaultItem)
        {
            var selectionList = items
                                .SelectWithIndex()
                                .Select(x => new { Number = x.Index + 1, Text = getCaption(x.Data), Item = x.Data })
                                .ToArray();

            selectionList.ForEach(x => sysConsole.WriteLine($"[{x.Number}]: {x.Text}"));

            var selection = sysConsole.ReadLine();

            if (!int.TryParse(selection, out var selectionNumber))
            {
                throw new InvalidOperationException();
            }

            var selectedItem = selectionList.FirstOrDefault(x => x.Number == selectionNumber);

            return(selectedItem is null
                ? defaultItem
                : selectedItem.Item);
        }
コード例 #2
0
 public static string?ReadLine(this ISysConsole sysConsole, string text)
 {
     return(sysConsole
            .Write(text)
            .ReadLine());
 }
コード例 #3
0
 public static TItem?SelectItem <TItem>(this ISysConsole sysConsole, IEnumerable <TItem> items, TItem?defaultItem)
 {
     return(sysConsole.SelectItem(items, x => x?.ToString(), defaultItem));
 }
コード例 #4
0
 public static TItem?SelectItem <TItem>(this ISysConsole sysConsole, IEnumerable <TItem> items, Func <TItem, string?> getCaption)
 {
     return(sysConsole.SelectItem(items, getCaption, default));
 }
コード例 #5
0
 public DefaultConsoleApp(IConsoleAppExecutor consoleAppExecutor, string[] args, ISysConsole sysConsole)
 {
     _consoleAppExecutor = Ensure.NotNull(consoleAppExecutor, nameof(consoleAppExecutor));
     _args       = Ensure.NotNull(args, nameof(args));
     _sysConsole = Ensure.NotNull(sysConsole, nameof(sysConsole));
 }
コード例 #6
0
 public CliActionHelpPrinter(ICliActionHelpGenerator helpGenerator, ISysConsole sysConsole)
 {
     _sysConsole    = Ensure.NotNull(sysConsole, nameof(sysConsole));
     _helpGenerator = Ensure.NotNull(helpGenerator, nameof(helpGenerator));
 }