1

問題例:画像会話

次の画像は、回答が表示される前に質問に 2 回回答する必要があることを示しています。ひょっとして、コードのどこが間違っている可能性があるのか​​、どうすれば修正できるのか、誰でも知っていますか?

  public IDialog<IntroForm> BuildChain()
    {
        return Chain
            .From(() => FormDialog.FromForm(BuildIntroForm))
            .Switch(
                new Case<IntroForm, IDialog<IntroForm>>((msg) =>
                {
                    return true;  //Debug
                }, (ctx, msg) =>
                {
                    return Chain.From(() => FormDialog.FromForm(BuildPCForm));
                }),
                new DefaultCase<IntroForm, IDialog<IntroForm>>((ctx, msg) =>
                {
                   //Code ...
                })
            )
            .Unwrap()
            .PostToUser();
    }

    private IForm<IntroForm> BuildPCForm()
    {
        return new FormBuilder<IntroForm>()
            .Message("Rozsvítí se nějaké LED, ozve se beeb kód, ozve se zvuk větráčku, jakákoli reakce na spouštěcí tlačítko?") //Czech language
            .Build();
    }

    private IForm<IntroForm> BuildIntroForm()
    {
        return new FormBuilder<IntroForm>()
             .
             . //Code ..
            .Field(new FieldReflector<IntroForm>(nameof(IntroForm.Problem))
             .SetPrompt(
                    new PromptAttribute(
                        "Máte problém s ...? {||}"))) //Form from the image
            .Build();
    }
4

1 に答える 1

1

解決策を見つけました

FormDialog.FromForm(BuildPCForm,FormOptions.PromptInStart))add FormOptions.PromptInStartを使用

完全なコード

public IDialog<IntroForm> BuildChain()
{
    return Chain
        .From(() => FormDialog.FromForm(BuildIntroForm))
        .Switch(
            new Case<IntroForm, IDialog<IntroForm>>((msg) =>
            {
                return true;  //Debug
            }, (ctx, msg) =>
            {
                return Chain.From(() => FormDialog.FromForm(BuildPCForm,FormOptions.PromptInStart));
            }),
            new DefaultCase<IntroForm, IDialog<IntroForm>>((ctx, msg) =>
            {
               //Code ...
            })
        )
        .Unwrap()
        .PostToUser();
}

private IForm<IntroForm> BuildPCForm()
{
    return new FormBuilder<IntroForm>()
        .Message("Rozsvítí se nějaké LED, ozve se beeb kód, ozve se zvuk větráčku, jakákoli reakce na spouštěcí tlačítko?") //Czech language
        .Build();
}

private IForm<IntroForm> BuildIntroForm()
{
    return new FormBuilder<IntroForm>()
         .
         . //Code ..
        .Field(new FieldReflector<IntroForm>(nameof(IntroForm.Problem))
         .SetPrompt(
                new PromptAttribute(
                    "Máte problém s ...? {||}"))) //Form from the image
        .Build();
}
于 2016-08-09T08:03:41.590 に答える