У меня есть набор адаптивных карт, которые показываются при загрузке бота. На action.submit я могу получить значение карты, выбранной пользователем, но не могу передать это значение на следующий шаг в главном диалоговом окне.
OnTurnAsync следующий код написан:
public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
await base.OnTurnAsync(turnContext, cancellationToken);
var activity = turnContext.Activity;
if (string.IsNullOrWhiteSpace(activity.Text) && activity.Value != null)
{
activity.Text = JsonConvert.SerializeObject(activity.Value);
}
// Save any state changes that might have occured during the turn.
await ConversationState.SaveChangesAsync(turnContext, false, cancellationToken);
await UserState.SaveChangesAsync(turnContext, false, cancellationToken);
switch (activity.Text)
{
case "{\"choice\":1}":
break;
case "{\"choice\":2}":
// var msg = $"Platform Assistance";
// await turnContext.SendActivityAsync(MessageFactory.Text(msg), cancellationToken);
var welcomeCard = CreateAdaptiveCardAttachment();
var response = CreateResponse(turnContext.Activity, welcomeCard);
await turnContext.SendActivityAsync(response, cancellationToken);
//var response = CreateResponse(turnContext.Activity, welcomeCard);
break;
}
await turnContext.SendActivityAsync(activity, cancellationToken);
}
А в главном диалоге
private async Task<DialogTurnResult> HandleResponseAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
var userResult = stepContext.Result;
await stepContext.Context.SendActivityAsync($"INPUT: {stepContext.Result}");
return await stepContext.NextAsync();
}
Я ожидаю, что я получу выбор, выбранный пользователем, как только будут показаны все карты, которые будут в дальнейшем переданы намерениям LUIS
Я также пытался использовать текстовое приглашение, но код, похоже, не входит в метод HandleResponseAsync.