我有两个活动代表(S):
ActiveDelegate isFormFlow = (procReq) => procReq.UXExp == UserExperience.FormFlow;
ActiveDelegate isLUISFlow = (procReq) => procReq.UXExp == UserExperience.LUIS;
现在,在我的 POST 方法中,我想检查 FormFlow 是处于活动状态还是 LUIS,因此我将调用该函数。
public virtual async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity != null)
{
// one of these will have an interface and process it
switch (activity.GetActivityType())
{
case ActivityTypes.Message:
if (isFormFlow is TRUE)
{
await Conversation.SendAsync(activity, MakeRootDialogForm);
}
else if (isLUISFlow is TRUE)
{
await Conversation.SendAsync(activity, MakeRootDialogLUIS);
}
break;
case ActivityTypes.ConversationUpdate:
case ActivityTypes.ContactRelationUpdate:
case ActivityTypes.Typing:
case ActivityTypes.DeleteUserData:
default:
Trace.TraceError($"Unknown activity type ignored: {activity.GetActivityType()}");
break;
}
}
return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
}
请帮助我如何识别哪个代表处于活动状态。感谢任何帮助!
Microsoft.Bot.Builder.FormFlow.ActiveDelegate<T>
在FormFlow FormDialog<T>
中使用,以确定给定当前表单状态的特定步骤是否处于活动状态。 它通常不用于从多个根对话框中进行选择(通常应该只有一个根对话框)。