问题示例:图像对话
下图表明我必须在显示答案之前回答问题两次。有任何机会,任何人都知道代码中可能有什么问题,我该如何解决?
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();
}