Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }