Esempio n. 1
0
        public static ICarouselColumn ToCarouselColumn(this ICarouselColumn self)
        {
            if (self.Text == null)
            {
                throw new InvalidOperationException("The text cannot be null.");
            }

            CarouselColumn carouselColumn = self as CarouselColumn;

            if (carouselColumn == null)
            {
                carouselColumn = new CarouselColumn()
                {
                    ThumbnailUrl = self.ThumbnailUrl,
                    Title        = self.Title,
                    Text         = self.Text,
                };
            }

            if (self.Actions == null)
            {
                throw new InvalidOperationException("The actions cannot be null.");
            }

            carouselColumn.Actions = self.Actions.ToTemplateAction().ToArray();

            return(carouselColumn);
        }
Esempio n. 2
0
        private static CarouselColumn Convert(ICarouselColumn column)
        {
            if (column.Text == null)
            {
                throw new InvalidOperationException("The text cannot be null.");
            }

            if (!(column is CarouselColumn carouselColumn))
            {
                carouselColumn = new CarouselColumn()
                {
                    ThumbnailUrl = column.ThumbnailUrl,
                    Title        = column.Title,
                    Text         = column.Text,
                };
            }

            if (column.Actions == null)
            {
                throw new InvalidOperationException("The actions cannot be null.");
            }

            carouselColumn.Actions = TemplateAction.Convert(column.Actions);

            return(carouselColumn);
        }
        public void Convert_TemplateMessageWithCarouselTemplate_InstanceIsPreserved()
        {
            TemplateMessage message = new TemplateMessage()
            {
                AlternativeText = "Alternative",
                Template        = new CarouselTemplate()
                {
                    Columns = new ICarouselColumn[]
                    {
                        new CarouselColumn()
                        {
                            ThumbnailUrl = new Uri("https://foo.bar"),
                            Title        = "CarouselTitle",
                            Text         = "CarouselText",
                            Actions      = new ITemplateAction[]
                            {
                                new MessageAction()
                                {
                                    Label = "PostbackLabel",
                                    Text  = "PostbackText"
                                }
                            }
                        }
                    }
                }
            };

            ISendMessage[] messages = MessageConverter.Convert(new ISendMessage[] { message });

            Assert.AreEqual(1, messages.Length);

            ITemplateMessage templateMessage = messages[0] as ITemplateMessage;

            Assert.AreEqual(message, templateMessage);

            ICarouselTemplate buttonsTemplate = templateMessage.Template as ICarouselTemplate;

            Assert.AreEqual(message.Template, buttonsTemplate);

            ICarouselColumn column = buttonsTemplate.Columns.First();

            Assert.AreEqual(column, ((CarouselTemplate)message.Template).Columns.First());
        }