AdaptiveCardコンボボックスを使用して、いくつかのカテゴリの商品を表示しています。ユーザーがカテゴリをクリックすると、そのカテゴリは別の方法に渡され、そのカテゴリのすべての製品が別のアダプティブカードコンボボックスに表示され、ユーザーが製品を選択できるようになります。Adaptive cardコンボボックスの結果を別のメソッドに渡す
すべてのカテゴリをコンボボックスに表示するコードは次のとおりです。
ここでは、選択したカテゴリの製品を取得するために使用した方法です。
public async Task GetProductForCategory(IDialogContext context, string category)
{
var replyToConversation = context.MakeMessage();
replyToConversation.Attachments = new List<Attachment>();
HttpResponseMessage response = new HttpResponseMessage();
string query = string.Format(APIChatBot + "/ProductByCategory/" + category);
using (var client = ClientHelper.GetClient())
{
response = await client.GetAsync(query);
}
var productList = await response.Content.ReadAsAsync<IEnumerable<ProductDTO>>();
if(productList .Count() == 0)
{
string message = "Sorry There Are No products For this Category" + category;
await context.PostAsync(message);
}
else
{
List<AdaptiveCards.Choice> list = new List<AdaptiveCards.Choice>();
foreach (var item in productList)
{
AdaptiveCards.Choice choice = new AdaptiveCards.Choice()
{
Title = item.ProductName,
Value = item.Id.ToString()
};
list.Add(choice);
}
AdaptiveCard adaptiveCard = new AdaptiveCard();
adaptiveCard.Body.Add(new TextBlock()
{
Text = "List of Products for the Category " + category,
Size = TextSize.Normal,
Weight = TextWeight.Normal
});
adaptiveCard.Body.Add(new TextBlock()
{
Text = "Please Select A Product From The List",
Size = TextSize.Normal,
Weight = TextWeight.Normal
});
adaptiveCard.Body.Add(new ChoiceSet()
{
Id = "ProductForCategory",
Style = ChoiceInputStyle.Compact,
Choices = list
});
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = adaptiveCard
};
replyToConversation.Attachments.Add(attachment);
await context.PostAsync(replyToConversation);
}
}
ユーザーが選択したカテゴリを、カテゴリに基づいて製品を選択する方法に渡すにはどうすればよいですか?
_「役に立たない」あなたのコード、何が起こると予想されたのか、実際に何が起こったのかを示してください。 – stuartd
@stuartd質問を編集してコードを追加しました。可能であれば助けてください – Azmy