public static TemplateMessage ToTemplateMessage(this ITemplateMessage self) { if (self.AlternativeText == null) { throw new InvalidOperationException("The alternative text cannot be null."); } TemplateMessage templateMessage = self as TemplateMessage; if (templateMessage == null) { templateMessage = new TemplateMessage() { AlternativeText = self.AlternativeText, }; } if (self.Template == null) { throw new InvalidOperationException("The template cannot be null."); } templateMessage.Template = self.Template.ToTemplate(); return(templateMessage); }
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()); }
public void Convert_TemplateMessageWithButtonsTemplate_InstanceIsPreserved() { TemplateMessage message = new TemplateMessage() { AlternativeText = "Alternative", Template = new ButtonsTemplate() { ThumbnailUrl = new Uri("https://foo.bar"), Title = "ButtonsTitle", Text = "ButtonsText", Actions = new ITemplateAction[] { new PostbackAction() { Label = "PostbackLabel", Text = "PostbackText", Data = "PostbackData", } } } }; ISendMessage[] messages = MessageConverter.Convert(new ISendMessage[] { message }); Assert.AreEqual(1, messages.Length); ITemplateMessage templateMessage = messages[0] as ITemplateMessage; Assert.AreEqual(message, templateMessage); IButtonsTemplate buttonsTemplate = templateMessage.Template as IButtonsTemplate; Assert.AreEqual(message.Template, buttonsTemplate); ITemplateAction action = buttonsTemplate.Actions.First(); Assert.AreEqual(action, ((ButtonsTemplate)message.Template).Actions.First()); }
public void Convert_TemplateMessageWithConfirmTemplate_InstanceIsPreserved() { TemplateMessage message = new TemplateMessage() { AlternativeText = "Alternative", Template = new ConfirmTemplate() { Text = "ButtonsText", OkAction = new MessageAction() { Label = "PostbackLabel", Text = "PostbackText" }, CancelAction = new UriAction() { Label = "PostbackLabel", Url = new Uri("http://foo.bar") } } }; ISendMessage[] messages = MessageConverter.Convert(new ISendMessage[] { message }); Assert.AreEqual(1, messages.Length); ITemplateMessage templateMessage = messages[0] as ITemplateMessage; Assert.AreEqual(message, templateMessage); IConfirmTemplate confirmTemplate = templateMessage.Template as IConfirmTemplate; Assert.AreEqual(message.Template, confirmTemplate); Assert.AreEqual(confirmTemplate.OkAction, ((ConfirmTemplate)message.Template).OkAction); Assert.AreEqual(confirmTemplate.CancelAction, ((ConfirmTemplate)message.Template).CancelAction); }
internal static TemplateMessage Convert(ITemplateMessage message) { if (message.AlternativeText == null) { throw new InvalidOperationException("The alternative text cannot be null."); } if (!(message is TemplateMessage templateMessage)) { templateMessage = new TemplateMessage() { AlternativeText = message.AlternativeText, }; } if (message.Template == null) { throw new InvalidOperationException("The template cannot be null."); } templateMessage.Template = Convert(message.Template); return(templateMessage); }