// 以Id尋找Adaptive Element,並設定Select Action public AdaptiveCard SetSelectActionById(string id, CardAction tap) { var element = GetCardElementById(id); if (element == null) { return(Card); } var selectAction = AdaptiveElementBuilder.CreateAction(tap); switch (element.Type) { case AdaptiveImage.TypeName: (element as AdaptiveImage).SelectAction = selectAction; break; case AdaptiveContainer.TypeName: (element as AdaptiveContainer).SelectAction = selectAction; break; case AdaptiveColumnSet.TypeName: (element as AdaptiveColumnSet).SelectAction = selectAction; break; case AdaptiveColumn.TypeName: (element as AdaptiveColumn).SelectAction = selectAction; break; } return(Card); }
// Create AdaptiveCard from ThumbnailCard public static AdaptiveCard CreateThumbnailCard(ThumbnailCard card, string version = "1.0") { var adaptiveCard = new AdaptiveCard(); var body = new AdaptiveContainer() { Items = new List <AdaptiveElement>() }; // Add Image var image = AdaptiveElementBuilder.CreateImage(card.Images, AdaptiveImageSize.Medium); if (image != null) { body.Items.Add(image); } // Add Title, SubTitle and Text body.Items.AddRange(AdaptiveElementBuilder.CreateTitle(card.Title, card.Subtitle, card.Text)); // Set Tap Action if (card.Tap != null) { body.SelectAction = AdaptiveElementBuilder.CreateAction(card.Tap); } // Set Body and Actions adaptiveCard.Body = new List <AdaptiveElement>() { body }; adaptiveCard.Actions = AdaptiveElementBuilder.CreateActions(card.Buttons); adaptiveCard.Version = version; return(adaptiveCard); }
// Add List Item private static AdaptiveElement CreateListItem(AdaptiveListCardItem item, int itemIndex, AdaptiveListCardImageLayout imageLayout, AdaptiveImageSize imageSize = AdaptiveImageSize.Small) { var columns = new List <AdaptiveColumn>(); // Add Title, subtitile, text var itemContent = new AdaptiveColumn(); if (!string.IsNullOrEmpty(item.Title)) { itemContent.Items.Add(new AdaptiveTextBlock() { Text = item.Title, Id = $"Item-{itemIndex}-Title", Size = AdaptiveTextSize.Medium, Weight = AdaptiveTextWeight.Bolder, Spacing = AdaptiveSpacing.None, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }); } if (!string.IsNullOrEmpty(item.Subtitle)) { itemContent.Items.Add(new AdaptiveTextBlock() { Text = item.Subtitle, Id = $"Item-{itemIndex}-Subtitle", Size = AdaptiveTextSize.Default, Spacing = AdaptiveSpacing.None, IsSubtle = true, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }); } if (!string.IsNullOrEmpty(item.Text)) { itemContent.Items.Add(new AdaptiveTextBlock() { Text = item.Text, Id = $"Item-{itemIndex}-Text", Size = AdaptiveTextSize.Small, Spacing = AdaptiveSpacing.None, Weight = AdaptiveTextWeight.Lighter, IsSubtle = true, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }); } // Add List Image var itemImage = new AdaptiveColumn() { Items = new List <AdaptiveElement>(), Width = AdaptiveColumnWidth.Auto.ToLower() }; if (item.Image != null && !string.IsNullOrEmpty(item.Image.Url)) { itemImage.Items.Add(AdaptiveElementBuilder.CreateImage(item.Image, imageSize)); } // Set List Item switch (imageLayout) { case AdaptiveListCardImageLayout.Right: columns.Add(itemContent); columns.Add(itemImage); break; case AdaptiveListCardImageLayout.Left: columns.Add(itemImage); columns.Add(itemContent); break; case AdaptiveListCardImageLayout.None: default: columns.Add(itemContent); break; } return(new AdaptiveColumnSet() { Separator = true, Columns = columns, SelectAction = AdaptiveElementBuilder.CreateAction(item.Tap) }); }
// Add Receipt Items private static AdaptiveElement CreateReceiptItem(ReceiptItem item, int itemIndex, AdaptiveImageSize imageSize = AdaptiveImageSize.Small) { var columns = new List <AdaptiveColumn>(); // Add Receipt Item Image if (item.Image != null && item.Image.Url != null) { columns.Add(new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto.ToLower(), Items = new List <AdaptiveElement>() { AdaptiveElementBuilder.CreateImage(item.Image, imageSize, id: $"Item-{itemIndex}-Image") } }); } // Add Receipt Item Title and Subtitle if (!string.IsNullOrEmpty(item.Title) || !string.IsNullOrEmpty(item.Subtitle)) { var title = (!string.IsNullOrEmpty(item.Title)) ? item.Title : string.Empty; var subtitle = (!string.IsNullOrEmpty(item.Subtitle)) ? item.Subtitle : string.Empty; columns.Add(new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto.ToLower(), Items = new List <AdaptiveElement>() { new AdaptiveTextBlock() { Text = title, Id = $"Item-{itemIndex}-Title", Size = AdaptiveTextSize.Medium, Spacing = AdaptiveSpacing.None, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }, new AdaptiveTextBlock() { Text = subtitle, Id = $"Item-{itemIndex}-Subtitle", Size = AdaptiveTextSize.Default, Spacing = AdaptiveSpacing.None, HorizontalAlignment = AdaptiveHorizontalAlignment.Left } } }); } // Add Price if (!string.IsNullOrEmpty(item.Price)) { columns.Add(new AdaptiveColumn() { Width = AdaptiveColumnWidth.Stretch.ToLower(), Items = new List <AdaptiveElement>() { new AdaptiveTextBlock() { Text = item.Price, Id = $"Item-{itemIndex}-Price", Size = AdaptiveTextSize.Medium, HorizontalAlignment = AdaptiveHorizontalAlignment.Right } } }); } return(new AdaptiveColumnSet() { Columns = columns, SelectAction = AdaptiveElementBuilder.CreateAction(item.Tap) }); }
// Create AdaptiveCard from ReceiptCard public static AdaptiveCard CreateReceiptCard(ReceiptCard card, string totalTitle = "Total", string vatTitle = "VAT", string taxTitle = "Tax", string version = "1.0") { var adaptiveCard = new AdaptiveCard(); var body = new AdaptiveContainer() { Items = new List <AdaptiveElement>() }; // Add Title body.Items.AddRange(AdaptiveElementBuilder.CreateTitle(card.Title)); // Add Receipt Fact if (card.Facts != null && card.Facts.Count != 0) { body.Items.AddRange(CreateReceiptFactSet(card.Facts)); } // Add Separator body.Items.Add(CreateReceiptSeparator()); // Add Receipt Item if (card.Items != null && card.Items.Count != 0) { body.Items.AddRange(CreateReceiptItems(card.Items.ToList())); } // Add Separator body.Items.Add(CreateReceiptSeparator()); // Add VAT if (!string.IsNullOrEmpty(card.Vat)) { body.Items.Add(CreateReceiptOtherInfo(vatTitle, card.Vat, "Vat")); } // Add Tax if (!string.IsNullOrEmpty(card.Tax)) { body.Items.Add(CreateReceiptOtherInfo(taxTitle, card.Tax, "Tax")); } // Add Total if (!string.IsNullOrEmpty(card.Total)) { body.Items.Add(CreateReceiptTotalInfo(totalTitle, card.Total)); } // Set Tap Action if (card.Tap != null) { body.SelectAction = AdaptiveElementBuilder.CreateAction(card.Tap); } // Set Body and Actions adaptiveCard.Body = new List <AdaptiveElement>() { body }; adaptiveCard.Actions = AdaptiveElementBuilder.CreateActions(card.Buttons); adaptiveCard.Version = version; return(adaptiveCard); }