Esempio n. 1
0
 public static void WriteObjects <TObj, TMember1, TMember2, TMember3, TMember4, TMember5, TMember6, TMember7, TMember8, TMember9, TMember10>(
     this CommandContext context,
     IEnumerable <TObj> objects,
     Expression <Func <TObj, TMember1> > expression1,
     Expression <Func <TObj, TMember2> > expression2,
     Expression <Func <TObj, TMember3> > expression3,
     Expression <Func <TObj, TMember4> > expression4,
     Expression <Func <TObj, TMember5> > expression5,
     Expression <Func <TObj, TMember6> > expression6,
     Expression <Func <TObj, TMember7> > expression7,
     Expression <Func <TObj, TMember8> > expression8,
     Expression <Func <TObj, TMember9> > expression9,
     Expression <Func <TObj, TMember10> > expression10,
     bool indent,
     bool createHeader)
 {
     context.WriteText(
         LineFormatter.CreateLines(
             objects,
             expression1,
             expression2,
             expression3,
             expression4,
             expression5,
             expression6,
             expression7,
             expression8,
             expression9,
             expression10,
             indent,
             createHeader));
 }
Esempio n. 2
0
 public static void WriteObjects <TObj, TMember1, TMember2>(
     this CommandContext context,
     IEnumerable <TObj> objects,
     Expression <Func <TObj, TMember1> > expression1,
     Expression <Func <TObj, TMember2> > expression2,
     bool indent,
     bool createHeader)
 {
     context.WriteText(
         LineFormatter.CreateLines(
             objects,
             expression1,
             expression2,
             indent,
             createHeader));
 }
Esempio n. 3
0
        public async Task ExecuteAsync(CommandBuilder builder, CommandContext context)
        {
            await context.OnExecuteAsync(() =>
            {
                // required services
                ICommandProvider commands = context.HttpContext.RequestServices.GetRequiredService <ICommandProvider>();
                ICommandExecutionEnvironment environment = context.HttpContext.RequestServices.GetRequiredService <ICommandExecutionEnvironment>();

                int builtInCount  = 0;
                int externalCount = 0;

                var items = new List <CommandInfo>();

                foreach (ICommand cmd in commands.All(context.HttpContext))
                {
                    if (!environment.IsVisibleForHelp(cmd, context.HttpContext))
                    {
                        continue;
                    }

                    if (IsBuiltInCommand(cmd))
                    {
                        builtInCount++;
                    }
                    else
                    {
                        externalCount++;
                    }

                    items.Add(cmd.GetType().GetCommandInfo());
                }

                string[] lines = LineFormatter.CreateLines(items, x => x.Name, x => x.Description, true, false);

                if (builtInCount > 0)
                {
                    context.WriteText("Built-in commands:");

                    for (int i = 0; i < builtInCount; i++)
                    {
                        string line = lines[i];
                        context.WriteText(line);
                    }
                }

                if (externalCount > 0)
                {
                    if (builtInCount > 0)
                    {
                        context.WriteText("");
                    }

                    context.WriteText("Custom commands:");

                    for (int i = builtInCount; i < lines.Length; i++)
                    {
                        string line = lines[i];
                        context.WriteText(line);
                    }
                }

                if (!lines.Any())
                {
                    context.WriteError("No commands found.");
                }

                return(context.Exit());
            });
        }