void ShowMainTopics(IDialogContext context) { // Display a dialog box with choices. FuzzyPromptDialog <string> .Choice( context : context, resume : OnMainTopicSelectedAsync, promptOptions : FuzzyPromptOptions <string> .Create( prompt: ResponseUtterances.GetResponse(ResponseUtterances.ReplyTypes.RootPrompt), attempts: 0, // The "too many attempts" string is always shown by the choice dialog. // See the "PostAsync() call in https://github.com/Microsoft/BotBuilder/blob/4621a4c611889a6ebade4717329f8e6ea62f2f7f/CSharp/Library/Microsoft.Bot.Builder/Dialogs/PromptDialog.cs#L1178 // This means: using NULL will lead to the defautl string and using empty string will output an empty message. Instead of subclassing // the prompt dialog and trying to fix it, let's just use it instead of our own PostAsync() call. It wil always show up because the fuzzy // dialog has a retry count of 0. tooManyAttempts: ResponseUtterances.GetResponse(ResponseUtterances.ReplyTypes.PickOneOfTheseTopics), retry: string.Empty, options: MainMenuChoices.Keys.ToArray(), validOptions: MainMenuChoices.Keys.Union(AlternativeChoices.Keys).ToArray())); }
public static void Choice(IDialogContext context, ResumeAfter <T> resume, FuzzyPromptOptions <T> promptOptions) { var child = new FuzzyPromptDialog <T>(promptOptions); context.Call(child, resume); }