コード例 #1
0
        public async Task Execute(IMessage rawMessage)
        {
            if (string.IsNullOrWhiteSpace(Command))
            {
                StringBuilder strBuilder = new StringBuilder();
                strBuilder.AppendLine(":information_source: __**Here are all supported commands:**__ :information_source:");
                strBuilder.AppendLine();

                foreach (Type commandType in _commands.OrderBy(x => x.Name))
                {
                    var verbAttr = commandType.GetCustomAttribute <CommandVerbAttribute>();
                    if (verbAttr != null && !verbAttr.Hidden)
                    {
                        HelpTextRenderer helpRenderer = new HelpTextRenderer(commandType);
                        strBuilder.Append(helpRenderer.GenerateHeaderHelp());
                        strBuilder.AppendLine();
                    }
                }

                await rawMessage.Channel.SendMessageAsync(strBuilder.ToString());
            }
            else
            {
                if (_commands.TryGetCommandType(Command, out Type commandType))
                {
                    HelpTextRenderer helpRenderer = new HelpTextRenderer(commandType);
                    await rawMessage.Channel.SendMessageAsync(helpRenderer.GetHelp());
                }
                else
                {
                    await rawMessage.Channel.SendMessageAsync($"\"{Command}\" is an unknown command. Type !help to list all available commands!");
                }
            }
        }
コード例 #2
0
ファイル: HelpTextRendererTests.cs プロジェクト: thorhj/CliFx
        public void RenderHelpText_Test(HelpTextSource source,
                                        IReadOnlyList <string> expectedSubstrings)
        {
            // Arrange
            using var stdout = new StringWriter();

            var console  = new VirtualConsole(stdout);
            var renderer = new HelpTextRenderer();

            // Act
            renderer.RenderHelpText(console, source);

            // Assert
            stdout.ToString().Should().ContainAll(expectedSubstrings);
        }
コード例 #3
0
        public void RenderHeaderHelpTest(Type inputType, string expectedHeader)
        {
            HelpTextRenderer helpTextRenderer = new HelpTextRenderer(inputType);

            Assert.Equal(expectedHeader, helpTextRenderer.GenerateHeaderHelp().ToString());
        }
コード例 #4
0
        public void RenderSyntaxHelpTest(Type inputType, string expectedSyntaxHelp)
        {
            HelpTextRenderer helpTextRenderer = new HelpTextRenderer(inputType);

            Assert.Equal(expectedSyntaxHelp, helpTextRenderer.GenerateSyntaxHelp().ToString());
        }