私は現在、ボットフレームワーク技術に取り組んでいます。私のプロジェクトの1つで、私はフォームのバックボタンをクリックすると、ユーザー会話に戻ります。 戻るボタンをクリックすると、前のユーザーの会話に戻ることができます。確認ダイアログでは?
私が知っているのは、ユーザーがボットフレームワークエミュレータに戻るとすぐに戻ってきますが、上記のシナリオが必要です。
上記のシナリオをどのように解決できますか?
私は現在、ボットフレームワーク技術に取り組んでいます。私のプロジェクトの1つで、私はフォームのバックボタンをクリックすると、ユーザー会話に戻ります。 戻るボタンをクリックすると、前のユーザーの会話に戻ることができます。確認ダイアログでは?
私が知っているのは、ユーザーがボットフレームワークエミュレータに戻るとすぐに戻ってきますが、上記のシナリオが必要です。
上記のシナリオをどのように解決できますか?
これがFormDialogの場合、フォーム内の各要素に検証手順を追加できます。あなたの場合、おそらくbool "WantsToCreateAccount"などを使用していますか?あなたのFormBuilderコードで
私はここでやったとして、あなたは一般的に簡単な形式で、実行したい:
public static IForm<UserData> BuildForm()
{
return new FormBuilder<UserData>()
.Message("Before we start, let me ask you a couple of questions")
.AddRemainingFields()
.Field(new FieldReflector<UserData>(nameof(IsCustomer))
.SetValidate(async (state, value) => await ValidateIsCustomerFieldAsync(state, value)))
.Field(new FieldReflector<UserData>(nameof(HasCustomerId))
.SetValidate(async (state, value) => await ValidateHasCustomerIdFieldAsync(state, value)))
.Build();
}
あなたはどんなロジックにあなたを適用することができる場所SetValidateが、ここで重要です」それはNULLにすることはできません値の型なので、それは「NOVALUEを持っている場合、バリデータは表示されませんので、BOOLEAN値がで検証を行うことがトリッキーであることをそのフィールドの検証の後のようなD、すなわち
private static Task<ValidateResult> ValidateHasCustomerIdFieldAsync(UserData state, object value)
{
if((SvarAlternativ) value == SvarAlternativ.Nej)
{
state.CustomerId = "Kund, har inte Id";
}
return Task.FromResult(new ValidateResult { IsValid = true, Value = value });
}
注意"または" false "の状態です。これはあなたを助け
public enum SvarAlternativ
{
NoValue,
Ja,
Nej
}
希望:このため、私はちょうどゼロ値は、ボットフレームワークによって設定された「NOVALUE」状態である列挙型を作成しました。検証メソッドの内部に入ると、context.closeや必要な処理を行うことができます。
あなたが何を求めているのか分かりません。もっと具体的になりますか? – Lars
上記の画像で、戻るボタンをクリックすると、前のステップの会話ダイアログには移動しません。戻るボタンをクリックすると、以前の会話に戻ることができますか教えてください。 – pradeep
それはエミュレータでは動作しますが、他の場所では動作しないと言いますか? – Lars