Add another keyword for Quit in FormFlows - Bot Fr

2019-02-11 04:11发布

问题:

Is it possible to change the keyword for the Quit commando in FormDialog using Bot Framework?

I want to throw the FormCanceledException when a certain word is typed (Not using english as language).

If I could change the keyword, or add another that does the same as Quit it would be perfect

回答1:

Yes, it's possible. One way to do that, is to add a new term to the FormCommand.Quit command.

Here you will find an example that is doing exactly that (and code below for your reference)

private static IFormBuilder<T> CreateCustomForm<T>()
   where T : class
{
    var form = new FormBuilder<T>();
    var command = form.Configuration.Commands[FormCommand.Quit];
    var terms = command.Terms.ToList();
    terms.Add("cancel");
    command.Terms = terms.ToArray();

    var templateAttribute = form.Configuration.Template(TemplateUsage.NotUnderstood);
    var patterns = templateAttribute.Patterns;
    patterns[0] += " Type *cancel* to quit or *help* if you want more information.";
    templateAttribute.Patterns = patterns;

    return form;
}