私はこのコードを持っています。問題は、私は、「デフォルトの場合」に落ちた時はいつでも、私は自分のフォームをキックオフするために、第2のエントリに入力する必要があるということです除き、動作しますダイアログチェーンの問題(メッセージの受け渡し)
public class HotelBotDialog
{
public static readonly IDialog<string> dialog = Chain.PostToChain()
.Select(msg => msg.Text)
.Switch(
new RegexCase<IDialog<string>>(new Regex("^hi", RegexOptions.IgnoreCase), (context, txt) =>
{
return Chain.ContinueWith(new GreetingDialog(), AfterGreetingContinuation);
}),
new DefaultCase<string, IDialog<string>>((context, txt) =>
{
return Chain.ContinueWith(FormDialog.FromForm(RoomReservation.BuildForm), AfterGreetingContinuation);
}))
.Unwrap()
.PostToUser();
private async static Task<IDialog<string>> AfterGreetingContinuation(IBotContext context, IAwaitable<object> res)
{
var token = await res;
var name = "User";
context.UserData.TryGetValue<string>("Name", out name);
return Chain.Return($"Thank you for using the hotel bot: {name}");
}
}
}
。だからここダイアログが
のように私に見えるものです:テスト ボット: ミー:Test2を ボット:私が欲しいのホテルのボットへようこそ...何とか何とか
が
私がある:テスト Bot:ホテルボットにようこそ。
元のメッセージや何かを渡していない場所が間違っていると思います。
誰かが助けることができますか?
ありがとうございました!それはトリックでした! – Matt