Post 基于 bool answer 给用户的消息 - FormFlow/Bot 框架

Post a message to the user based on bool answer - FormFlow/Bot Framework

我似乎找不到一种方法来根据用户如何回答布尔值 post 在 FormFlow 中向用户发送消息。要 post 基于先前答案的字段,您可以使用:

 .Field(new FieldReflector<GetQuoteDialog>(nameof(Dothis))
            .SetActive((state) => state.isDone== true))

但是我还没有找到对 .Message() 执行相同操作的方法。所以说如果我只想发送消息 "Congrats!",那么 post 表单流中的下一个问题。

所以我想播放的对话如下:

  1. true/false 问题
  2. 用户回答正确
  3. post 消息 "Congrats" 如果用户回答正确
  4. 问下一个true/false问题

有什么方法是我想念的吗?

您可以利用 .Message() 的第二个参数,即条件委托函数,来自源代码:

    // Summary:
    //     Show a message that does not require a response.
    //
    // Parameters:
    //   message:
    //     A \ref patterns string to fill in and send.
    //
    //   condition:
    //     Whether or not this step is active.
    //
    //   dependencies:
    //     Fields message depends on.
    //
    // Returns:
    //     Modified IFormBuilder.
    IFormBuilder<T> Message(string message, ActiveDelegate<T> condition = null, IEnumerable<string> dependencies = null);

所以,请尝试:

.Message("Congrats", condition: (form) => form.boolField == true)