Я пытаюсь написать бот, который позволит пользователям создать запрос (например, я хочу купить футболку, или я хочу исправить свой компьютер). В зависимости от запроса, который они выбирают, им будет задан ряд вопросов, связанных с этим запросом; вопросы напрямую связаны с запросом, который они выбирают. В настоящее время я пытаюсь повторить этот список вопросов и использовать метод PromptDialog.Text, чтобы получить ответы. Тем не менее, это только задает последний вопрос в Списке, и когда дается ответ, я получаю сообщение об ошибке с Неправильная необходимость: ожидается Подождите, сделайте в качестве сообщения.PromptDialog для неопределенного количества вопросов
private async Task ListOfferings(IDialogContext context, IAwaitable<string> result)
{
string name = await result;
var offerings = Offerings.Where((x) =>
CultureInfo.CurrentCulture.CompareInfo.IndexOf(x.Name, name,
CompareOptions.IgnoreCase) >= 0
);
if (offerings.Count() != 0)
{
PromptDialog.Choice(context, CreateOffering, offerings, "Which of these would you like?");
}
else
{
await context.PostAsync(string.Format("Could not find an offering with name {0}", name));
context.Wait(MessageReceived);
}
}
private async Task CreateOffering(IDialogContext context, IAwaitable<Offering> result)
{
var offering = result.GetAwaiter().GetResult();
await context.PostAsync(string.Format("***CREATING {0}***", offering.Name.ToUpper()));
foreach (var question in offering.Questions)
{
PromptDialog.Text(context, null, question.Question);
}
}
Можно ли сделать что-то вроде этого, где я хочу, чтобы динамически решать вопросы пользователя будут заданы во время выполнения или я должен принять более статический подход по сценарию?