gpt4 book ai didi

c# - Microsoft Bot 框架如何验证表单流中的日期?

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:33 24 4
gpt4 key购买 nike

我正在开发 Microsoft 机器人框架,我正在通过 Form Flow 开发对话。我要求用户输入 2 个日期。我想对日期执行自定义验证逻辑,例如用户输入的当前日期应大于用户输入的上一个日期。

以下是我的 FormFlow 属性

[Prompt("Please enter checkin date")]  
[Pattern(@"^\d{1,2}/\d{1,2}/\d{4}$")]
public string checkindate { get; set; }

[Prompt("Please enter checkin date")]
[Pattern(@"^\d{1,2}/\d{1,2}/\d{4}$")]
public string checkoutdate { get; set; }

我想验证 checkoutdate 应该大于 checkindate。我如何在 Bot 框架中执行此操作。

请帮助我提出您的建议。

谢谢,科坦

最佳答案

使用表单流中的 Validate 函数验证 BuildForm 方法中的 checkout 字段,该函数可用于验证字段。

.Field(nameof(checkoutdate),
validate: async (state, value) =>
{
var result = new ValidateResult { IsValid = true, Value = values };
//Here checkoutdate is present inside value
//Parse your date in string to Date object
DateTime checkindate = DateTime.Parse(state.checkindate);
DateTime checkoutdate = DateTime.Parse(value);

//If checkoutdate is less than checkin date then its invalid input
if (checkoutdate < checkindate)
{
result.IsValid = false;
result.Feedback = "Checkout date can't be less than checkin date";
}
return result;
})

同时考虑将您的 checkoutcheckin 字段类型更改为 DateTime,以便捕获日期输入的任何类型的变化。但如果您完全按照指定的模式需要它,请保持原样。

另请查看 Basic features of form flowAdvanced features of form flow , 这应该可以帮助您熟悉表单流的概念

关于c# - Microsoft Bot 框架如何验证表单流中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com