FormFlow:一段时间后取消表格

时间:2017-03-15 12:20:21

标签: c# botframework formflow

当用户在一段时间后没有回答时,我想停止我的表格流程。

public IForm<PatientForm> BuildForm()
        {
            if (dateFirstAnswer.AddSeconds(30) < DateTime.Now)
                return null;
            else
            {
                return new FormBuilder<PatientForm>()
                        .Message(ResourceStringExtentionsPatientForm.IntroForm.Spintax())
                        .OnCompletion(async (context, profileForm) =>
                        {
                            string message = ResourceStringExtentionsPatientForm.OutroForm.Spintax();
                            await context.PostAsync(message);
                        })
                        .Build();
            }
        }

我尝试返回null但是在离开表单流后我无法管理任何内容。

返回new FormBuilder<PatientForm>().Build()只跳过1个问题,表单流程继续。

有没有办法可以像用户一样调用FormCommand.Quit?

第二个问题,我看到一些BuildForm()是静态的例子,有没有理由这样做?

1 个答案:

答案 0 :(得分:0)

你应该试试这个:

IForm<PatientForm> newForm;

public void BuildForm()
        {
            if (dateFirstAnswer.AddSeconds(30) > DateTime.Now)
            {
                newForm = new FormBuilder<PatientForm>()
                        .Message(ResourceStringExtentionsPatientForm.IntroForm.Spintax())
                        .OnCompletion(async (context, profileForm) =>
                        {
                            string message = ResourceStringExtentionsPatientForm.OutroForm.Spintax();
                            await context.PostAsync(message);
                        })
                        .Build();
            }
        }