private async Task FollowUpBegin(IDialogContext context, int followUpIndex) { var followUpResultList = await _sqlConnector.GetFollowUpResultAsync(followUpIndex); // Let the user select the column names for the sql table var followUpResult = followUpResultList[0].result; if (followUpResult.FollowUp == "") { var finalMessage = context.MakeMessage(); finalMessage.Text = followUpResult.Response; finalMessage.Speak = followUpResult.Response; await context.PostAsync(finalMessage); } else { var options = BotHelper.GenerateListFromString(followUpResult.Options); var followUps = BotHelper.GenerateListFromString(followUpResult.FollowUp); context.ConversationData.SetValue("cFollowUp", followUps); context.ConversationData.SetValue("cOptions", options); var promptOptions = new PromptOptionsWithSynonyms <string>( prompt: followUpResult.Response, retry: "Unfortunately this option is not available", choices: BotHelper.ConvertListToDict(options), speak: followUpResult.Response, retrySpeak: "Unfortunately this option is not available" ); PromptDialog.Choice( context, FollowUpResumeAfter, promptOptions ); } }