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); }
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()); }