private async Task <List <Attachment> > CreateAdaptiveCardAttachmentAsync(OrderCategory category) { string[] paths = { ".", "Templates", "orderCard.json" }; var fullPath = Path.Combine(paths); var adaptiveCardTemplate = File.ReadAllText(fullPath); var cards = new List <Attachment>(); var cardConfigurations = await _cardConfigurationService.GetCardConfigurationsAsync(); if (category != OrderCategory.All) { var categoryName = category.ToString(); cardConfigurations = cardConfigurations.Where(x => categoryName.Equals(x.OrderCategory, StringComparison.OrdinalIgnoreCase)); } foreach (var configuration in cardConfigurations.Take(10)) { var card = adaptiveCardTemplate; card = card.Replace(@"__TitleText__", configuration.TitleText); card = card.Replace(@"__OrderType__", configuration.OrderType); card = card.Replace(@"__OrderCategory__", configuration.OrderCategory); card = card.Replace(@"__Description__", configuration.Description); card = card.Replace(@"__ImageUrl__", configuration.ImageUrl); var adaptiveCard = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(card), }; cards.Add(adaptiveCard); } return(cards); }
public async Task <List <Attachment> > CreateAttachmentsAsync(OrderCategory category) { var fullPath = Path.Combine(".", "Templates", "CardTemplate.json"); var adaptiveCardTemplate = File.ReadAllText(fullPath); var cards = new List <Attachment>(); var cardConfigurations = await _cardConfigurationRepository.GetItemsAsync(); if (category != OrderCategory.All) { var categoryName = category.ToString(); cardConfigurations = cardConfigurations.Where(x => categoryName.Equals(x.OrderCategory, StringComparison.OrdinalIgnoreCase)); } // AttachmentLayoutTypes.Carousel max item 10 foreach (var configuration in cardConfigurations.Take(10)) { var cardTemplate = adaptiveCardTemplate .Replace("__TitleText__", configuration.TitleText) .Replace("__OrderType__", configuration.OrderType) .Replace("__OrderCategory__", configuration.OrderCategory) .Replace("__Description__", configuration.Description) .Replace("__ImageUrl__", configuration.ImageUrl); cards.Add(new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardTemplate), }); } return(cards); }