Может ли адаптивная карта использоваться в адаптивном диалоге по шаблону? - PullRequest
2 голосов
/ 26 апреля 2020

Я хотел бы вернуть Adaptive Card через SendActivity в Adaptive Dialog.

Код для этого выглядит следующим образом:

new OnIntent("Help")
{
    Actions = new List<Dialog>()
    {
        new SendActivity("${Help-Root-Dialog()}")
    }
},

Но я хотел бы включить параметр в вызове для создания адаптивной карты. Допустим, имя пользователя (и, следовательно, персонализировать сообщение для пользователя. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 30 апреля 2020

Нашел несколько способов сделать это:

  1. Используйте SetProperty до вызова карты в разговоре
new SetProperty()
{
    Property = "conversation.gameCreateDate",
    Value = DateTime.Now.ToString()
},

new SendActivity("${PlayGameCard()}"),
//In .lg file:
# PlayGameCard
[Activity
    Attachments = ${json(AdaptiveCard.Definition())}
]

//...
{
    "type": "TextBlock",
    "spacing": "None",
    "text": "Created ${conversation.gameCreateDate}",
    "isSubtle": true,
    "wrap": true
}
//...
Отправка параметра при вызове карты, как это делается в промежуточном программном обеспечении AdaptorWithErrorHandler.
await turnContext.SendActivityAsync(ActivityFactory.FromObject( _templates.Evaluate("SomethingWentWrong", exception)));

Я использовал вариант 1, но, похоже, 2.

...