Esempio n. 1
0
        public static int SendErrorMessage(string msg, string stacktrace)
        {
            var template =
                @"<?Tittle:ApplicationError?>
<?FullMessage:
Message: 
<%Message%>

StackTrace: 
<%StackTrace%>
?>
<?ShortMessage: Test?>
";
            var message = TemplateMessage.GetMessage(template,
                                                     new
            {
                Message    = msg,
                StackTrace = stacktrace
            });

            var adresses = new MessageAddressCollection();

            adresses.EMails.FromAddress = "*****@*****.**";
            adresses.EMails.ToAddresses.Add("*****@*****.**");

            //adresses.Phones.FromAddress = "89150819401";
            //adresses.Phones.ToAddresses.Add("89150819401");

            MessageSender.SendMessage(adresses, message);
            return(message.MessageID);
        }
Esempio n. 2
0
        public void TestMethod4()
        {
            var url             = $"https://meiquewechat.microfeel.net/templatemessage/index";
            var templateMessage = new TemplateMessage
            {
                // 联系人:{ { keyword1.DATA} }
                // 联系电话:{ { keyword2.DATA} }
                // 安装地址:{ { keyword3.DATA} }
                Contents = new List <string>()
                {
                    "张伟", "18624438893", "哈尔滨恒盛豪庭4栋1000"
                },
                OpenIds = new List <string>()
                {
                    "oOeJg1kP5_HEwTEV3I59jwqa19vI"
                },
                First      = "安装提醒",
                Url        = "https://meiquewechat.microfeel.net/Order/OrderDetail?billID=323a6836-6e67-4e82-8549-208c4a143a16",
                TemplateId = "YZ5vsFVwOrWIjAb-5q9NeQa842kipYKaCMueg0srQMI",
            };
            var result = url.PostJsonAsync(templateMessage).ReceiveString().Result;
            var list   = JsonConvert.DeserializeObject <List <SendTemplateMessageResult> >(result);

            Debug.Assert(list.Count == 0, result);
        }
        public void Convert_TemplateMessageWithCustomIConfirmTemplate_ConvertedToConfirmTemplate()
        {
            TestTemplateMessage message = new TestTemplateMessage()
            {
                Template = new TestConfirmTemplate()
            };

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

            Assert.AreEqual(1, messages.Length);
            Assert.AreNotEqual(message, messages[0]);

            TemplateMessage templateMessage = messages[0] as TemplateMessage;

            Assert.AreEqual("AlternativeText", templateMessage.AlternativeText);

            ConfirmTemplate template = templateMessage.Template as ConfirmTemplate;

            Assert.AreEqual("ConfirmText", template.Text);

            MessageAction okAction = template.OkAction as MessageAction;

            Assert.AreEqual("MessageLabel", okAction.Label);
            Assert.AreEqual("MessageText", okAction.Text);

            UriAction cancelAction = template.CancelAction as UriAction;

            Assert.AreEqual("UriLabel", cancelAction.Label);
            Assert.AreEqual(new Uri("tel://uri"), cancelAction.Url);
        }
        public void Convert_TemplateMessageWithConfirmTemplateAndMessageActionLabelIsNull_ThrowsException()
        {
            TemplateMessage message = new TemplateMessage()
            {
                AlternativeText = "Alternative",
                Template        = new ConfirmTemplate()
                {
                    Text     = "ConfirmText",
                    OkAction = new MessageAction()
                    {
                        Text = "PostbackText"
                    },
                    CancelAction = new UriAction()
                    {
                        Label = "PostbackLabel",
                        Url   = new Uri("http://foo.bar")
                    }
                }
            };

            ExceptionAssert.Throws <InvalidOperationException>("The label cannot be null.", () =>
            {
                MessageConverter.Convert(new ISendMessage[] { message });
            });
        }
Esempio n. 5
0
        private void update_code(string appId, string token)
        {
            if (token.Length < 10)
            {
                return;
            }
            JavaScriptSerializer        serializer = new JavaScriptSerializer();
            Dictionary <string, object> csInfo     = new Dictionary <string, object>();

            csInfo.Add("component_appid", appId);//
            string menuInfo = serializer.Serialize(csInfo);

            string postUrl = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=" + token;
            string val     = TemplateMessage.PostWebRequest(postUrl, menuInfo);

            Dictionary <string, object> dToken = (Dictionary <string, object>)serializer.DeserializeObject(val);
            string pre_auth_code = "";
            object value;

            if (dToken.TryGetValue("pre_auth_code", out value))
            {
                pre_auth_code = value.ToString();
                Hashtable ht = new Hashtable();
                ht["Code"] = pre_auth_code;
                DataFactory.SqlDataBase().UpdateByHashtable("Wx_PlatformInfo", "AppId", appId, ht);
            }
        }
        public void Convert_TemplateMessageWithButtonsTemplateAndPostbackActionDataIsNull_ThrowsException()
        {
            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"
                        }
                    }
                }
            };

            ExceptionAssert.Throws <InvalidOperationException>("The data cannot be null.", () =>
            {
                MessageConverter.Convert(new ISendMessage[] { message });
            });
        }
        public void Convert_TemplateMessageWithCustomICarouselTemplate_ConvertedToCarouselTemplate()
        {
            TestTemplateMessage message = new TestTemplateMessage()
            {
                Template = new TestCarouselTemplate()
            };

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

            Assert.AreEqual(1, messages.Length);
            Assert.AreNotEqual(message, messages[0]);

            TemplateMessage templateMessage = messages[0] as TemplateMessage;

            Assert.AreEqual("AlternativeText", templateMessage.AlternativeText);

            CarouselTemplate template = templateMessage.Template as CarouselTemplate;

            CarouselColumn column = template.Columns.First() as CarouselColumn;

            Assert.AreEqual(new Uri("https://carousel.url"), column.ThumbnailUrl);
            Assert.AreEqual("CarouselTitle", column.Title);
            Assert.AreEqual("CarouselText", column.Text);

            ITemplateAction[] actions = column.Actions.ToArray();

            MessageAction action = actions[0] as MessageAction;

            Assert.AreEqual("MessageLabel", action.Label);
            Assert.AreEqual("MessageText", action.Text);
        }
Esempio n. 8
0
        public void TestMethod3()
        {
            var url             = $"https://meiquewechat.microfeel.net/templatemessage/index";
            var templateMessage = new TemplateMessage
            {
                // 姓名:{ { keyword1.DATA} }
                // 联系方式:{ { keyword2.DATA} }
                // 送货地点:{ { keyword3.DATA} }
                // 商品名称:{ { keyword4.DATA} }
                // 商品数量:{ { keyword5.DATA} }
                Contents = new List <string>()
                {
                    "张伟", "18817716666", "哈尔滨恒盛豪庭4栋1000", "1号商品", "50"
                },
                OpenIds = new List <string>()
                {
                    "oOeJg1kP5_HEwTEV3I59jwqa19vI"
                },
                First      = "亲爱的送货员,以下是订单详情,请及时送达",
                Remark     = "如有疑问请拨打电话18817716666",
                Url        = "https://meiquewechat.microfeel.net/Order/OrderDetail?billID=323a6836-6e67-4e82-8549-208c4a143a16",
                TemplateId = "WOhVMPZWgLm3awaWiJ0Cv5INuvGf2Baz91Doo5uks1k",
            };
            var result = url.PostJsonAsync(templateMessage).ReceiveString().Result;
            var list   = JsonConvert.DeserializeObject <List <SendTemplateMessageResult> >(result);

            Debug.Assert(list.Count == 0, result);
        }
            public void ShouldConvertCustomITemplateMessageToTemplateMessage()
            {
                var message = new TestTemplateMessage()
                {
                    Template = new TestButtonsTemplate()
                };

                var templateMessage = TemplateMessage.Convert(message);

                Assert.AreNotEqual(message, templateMessage);

                Assert.AreEqual("AlternativeText", templateMessage.AlternativeText);

                var template = templateMessage.Template as ButtonsTemplate;

                Assert.AreEqual(new Uri("https://bar.foo"), template.ThumbnailUrl);
                Assert.AreEqual("ButtonsTitle", template.Title);
                Assert.AreEqual("ButtonsText", template.Text);

                var actions = template.Actions.ToArray();

                var action = actions[0] as PostbackAction;

                Assert.AreEqual("PostbackLabel", action.Label);
                Assert.AreEqual("PostbackData", action.Data);
                Assert.AreEqual("PostbackText", action.Text);
            }
            public void ShouldPreserveInstanceWhenValueIsTemplateMessage()
            {
                var message = new TemplateMessage()
                {
                    AlternativeText = "Alternative",
                    Template        = new ButtonsTemplate()
                    {
                        ThumbnailUrl = new Uri("https://foo.bar"),
                        Title        = "ButtonsTitle",
                        Text         = "ButtonsText",
                        Actions      = new[]
                        {
                            new PostbackAction()
                            {
                                Label = "PostbackLabel",
                                Text  = "PostbackText",
                                Data  = "PostbackData",
                            }
                        }
                    }
                };

                var templateMessage = TemplateMessage.Convert(message);

                Assert.AreSame(message, templateMessage);

                var buttonsTemplate = templateMessage.Template as IButtonsTemplate;

                Assert.AreSame(message.Template, buttonsTemplate);

                var action = buttonsTemplate.Actions.First();

                Assert.AreSame(action, ((ButtonsTemplate)message.Template).Actions.First());
            }
Esempio n. 11
0
        public static void SendMessage(string accessTocken, TemplateMessage templateMessage)
        {
            StringBuilder builder = new StringBuilder("{");

            builder.AppendFormat("\"touser\":\"{0}\",", templateMessage.Touser);
            builder.AppendFormat("\"template_id\":\"{0}\",", templateMessage.TemplateId);
            builder.AppendFormat("\"url\":\"{0}\",", templateMessage.Url);
            builder.AppendFormat("\"topcolor\":\"{0}\",", templateMessage.Topcolor);
            builder.Append("\"data\":{");
            foreach (TemplateMessage.MessagePart part in templateMessage.Data)
            {
                builder.AppendFormat("\"{0}\":{{\"value\":\"{1}\",\"color\":\"{2}\"}},", part.Name, part.Value, part.Color);
            }
            builder.Remove(builder.Length - 1, 1);
            builder.Append("}}");
            WebUtils utils    = new WebUtils();
            string   url      = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessTocken;
            string   response = utils.DoPost(url, builder.ToString());

            //日志
            //StreamWriter writer = File.AppendText(HttpContext.Current.Server.MapPath("~/log/" + DateTime.Now.Ticks + "Template_Send.txt"));
            //writer.WriteLine(url);
            //writer.WriteLine(builder.ToString());
            //writer.WriteLine(response);
            //writer.WriteLine(DateTime.Now);
            //writer.Flush();
            //writer.Close();
            Log.Debug("TemplateApi", "url:" + url + " value:" + builder.ToString() + " response:" + response);
        }
Esempio n. 12
0
    /// <summary>
    /// 设置所属行业
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSetIndustry_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        string industryCode1 = "", industryCode2 = "";
        int    count = 0;

        foreach (ListItem item in cblIndustry.Items)
        {
            if (item.Selected)
            {
                count++;
                if (count == 1)
                {
                    industryCode1 = item.Value;
                }
                else if (count == 2)
                {
                    industryCode2 = item.Value;
                    break;
                }
            }
        }
        if (count != 2)
        {
            ltrMessage.Text = "请选择两个行业。";
        }
        else
        {
            ErrorMessage errorMessage = TemplateMessage.SetIndustry(userName, industryCode1, industryCode2);
            ltrMessage.Text = string.Format("设置所属行业{0}。{1}",
                                            errorMessage.IsSuccess ? "成功" : "失败",
                                            errorMessage.IsSuccess ? "" : errorMessage.ToString());
        }
    }
Esempio n. 13
0
 /// <summary>
 /// 发送模板消息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void btnSend_Click(object sender, EventArgs e)
 {
     if (rblUser.SelectedIndex >= 0 && rblTemplates.SelectedIndex > 0)
     {
         string userName   = lbPublicAccount.SelectedValue;
         string openId     = rblUser.SelectedValue;
         string templateId = rblTemplates.SelectedValue;
         string title      = txtTitle.Text;
         string name       = txtUserName.Text;
         string time       = DateTime.Now.ToString();
         Tuple <string, string, Color>[] data = new Tuple <string, string, Color>[] {
             new Tuple <string, string, Color>("title", title, Color.Blue),
             new Tuple <string, string, Color>("username", name, Color.Green),
             new Tuple <string, string, Color>("time", time, Color.Red)
         };
         ErrorMessage errorMessage;
         long         msgId = TemplateMessage.Send(userName, rblUser.SelectedValue, templateId, "", Color.Black, data, out errorMessage);
         if (errorMessage.IsSuccess)
         {
             ltrMessage.Text = string.Format("发送模板消息成功。消息id:{0}", msgId);
         }
         else
         {
             ltrMessage.Text = string.Format("发送模板消息失败。{0}", errorMessage);
         }
     }
 }
        /// <summary>
        /// 画像カルーセルテンプレート追加
        /// </summary>
        /// <param name="altText">テキスト</param>
        /// <param name="templateActionFactoryService">アクション作成用クラス</param>
        public MessageFactoryService AddImageCarouselTemplateMessage(
            TemplateImageCarouselColumnFactoryService templateimageCarouselColumnFactoryService,
            string altText
            )
        {
            Trace.TraceInformation("Start");

            if (!this.RegulateMessageArray())
            {
                Trace.TraceWarning("Regulate Message Array is False");
                Trace.TraceInformation("End");
                return(this);
            }

            MessageBase templateMessage = new TemplateMessage()
            {
                altText  = altText,
                template = new ImageCarouselTemplate()
                {
                    columns = templateimageCarouselColumnFactoryService.Columns,
                }
            };

            this.Messages[this.Messages.Length - 1] = templateMessage;

            Trace.TraceInformation("End");

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

            ExceptionAssert.Throws <InvalidOperationException>("The text cannot be null.", () =>
            {
                MessageConverter.Convert(new ISendMessage[] { message });
            });
        }
Esempio n. 16
0
        public void TestMethod2()
        {
            var url             = $"https://meiquewechat.microfeel.net/templatemessage/index";
            var templateMessage = new TemplateMessage
            {
                // 订单号:{ { keyword1.DATA} }
                // 订单状态:{ { keyword2.DATA} }
                // 商品名称:{ { keyword3.DATA} }
                Contents = new List <string>()
                {
                    "43535643656456456", "待处理", "1号商品"
                },
                OpenIds = new List <string>()
                {
                    "oOeJg1kP5_HEwTEV3I59jwqa19vI"
                },
                First      = "您收到一份订单",
                Remark     = "请您尽快处理!",
                Url        = "https://meiquewechat.microfeel.net/Order/OrderDetail?billID=323a6836-6e67-4e82-8549-208c4a143a16",
                TemplateId = "gcu_pgCPfKq51xBhB9oQtkK0KoK-g6aYL6Y5ljlwqRk",
            };
            var result = url.PostJsonAsync(templateMessage).ReceiveString().Result;
            var list   = JsonConvert.DeserializeObject <List <SendTemplateMessageResult> >(result);

            Debug.Assert(list.Count == 0, result);
        }
        public void Convert_TemplateMessageWithCustomIButtonsTemplate_ConvertedToConfirmTemplate()
        {
            TestTemplateMessage message = new TestTemplateMessage()
            {
                Template = new TestButtonsTemplate()
            };

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

            Assert.AreEqual(1, messages.Length);
            Assert.AreNotEqual(message, messages[0]);

            TemplateMessage templateMessage = messages[0] as TemplateMessage;

            Assert.AreEqual("AlternativeText", templateMessage.AlternativeText);

            ButtonsTemplate template = templateMessage.Template as ButtonsTemplate;

            Assert.AreEqual(new Uri("https://bar.foo"), template.ThumbnailUrl);
            Assert.AreEqual("ButtonsTitle", template.Title);
            Assert.AreEqual("ButtonsText", template.Text);

            ITemplateAction[] actions = template.Actions.ToArray();

            PostbackAction action = actions[0] as PostbackAction;

            Assert.AreEqual("PostbackLabel", action.Label);
            Assert.AreEqual("PostbackData", action.Data);
            Assert.AreEqual("PostbackText", action.Text);
        }
Esempio n. 18
0
        private void update_token(string appId, string appsecret, string ticket)
        {
            JavaScriptSerializer        serializer = new JavaScriptSerializer();
            Dictionary <string, object> csInfo     = new Dictionary <string, object>();

            csInfo.Add("component_appid", appId);//
            csInfo.Add("component_appsecret", appsecret);
            csInfo.Add("component_verify_ticket", ticket);
            string menuInfo = serializer.Serialize(csInfo);
            string postUrl  = "https://api.weixin.qq.com/cgi-bin/component/api_component_token";
            string val      = TemplateMessage.PostWebRequest(postUrl, menuInfo);

            Dictionary <string, object> dToken = (Dictionary <string, object>)serializer.DeserializeObject(val);
            string component_access_token      = "";
            object value;

            if (dToken.TryGetValue("component_access_token", out value))
            {
                component_access_token = value.ToString();
                Hashtable ht = new Hashtable();
                ht["Token"]      = component_access_token;
                ht["Ticket"]     = ticket;
                ht["CreateTime"] = DateTime.Now;
                DataFactory.SqlDataBase().UpdateByHashtable("Wx_PlatformInfo", "AppId", appId, ht);
            }
        }
Esempio n. 19
0
        public void TestMethod1()
        {
            var url             = $"https://meiquewechat.microfeel.net/templatemessage/index";
            var templateMessage = new TemplateMessage
            {
                /*
                 * 商品名称:{{keyword1.DATA}}
                 * 商品价格:{{keyword2.DATA}}
                 * 商品数量:{{keyword3.DATA}}
                 * 下单时间:{{keyword4.DATA}}
                 */
                Contents = new List <string>()
                {
                    "1号商品", "30", "40", "2018-10-19"
                },
                OpenIds = new List <string>()
                {
                    "oOeJg1kP5_HEwTEV3I59jwqa19vI"
                },
                First      = "您收到一份客户预订单",
                Remark     = "可能需要提前备货",
                Url        = "https://meiquewechat.microfeel.net/Order/OrderDetail?billID=323a6836-6e67-4e82-8549-208c4a143a16",
                TemplateId = "MSaGCBTSTNWzKSn9utOq_5BvnZr9uE5ugxrnhAT7xUU",
            };
            var result = url.PostJsonAsync(templateMessage).ReceiveString().Result;
            var list   = JsonConvert.DeserializeObject <List <SendTemplateMessageResult> >(result);

            Debug.Assert(list.Count == 0, result);
        }
Esempio n. 20
0
        public Boolean RemoveTemplate(long templateID)
        {
            using (ISession session = NHSessionHelper.GetSession())
            {
                try
                {
                    session.BeginTransaction();
                    DatabaseContext dc = new lm.Notification.Core.DataLayer.DatabaseContext(session);
                    TemplateMessage t  = session.Get <TemplateMessage>(templateID);

                    if (t != null && t.ID > 0)
                    {
                        session.Delete(t);
                        session.CommitTransaction();
                        return(true);
                    }
                    return(false);
                }
                catch (Exception ex)
                {
                    session.RollbackTransaction();
                    return(false);
                }
            }
        }
Esempio n. 21
0
 public void ShouldNotThrowExceptionWhenValueIsImageCarouselTemplate()
 {
     var message = new TemplateMessage()
     {
         Template = new ImageCarouselTemplate()
     };
 }
        /// <summary>
        /// カルーセルテンプレート追加
        /// </summary>
        /// <param name="altText">テキスト</param>
        /// <param name="templateActionFactoryService">アクション作成用クラス</param>
        public MessageFactoryService AddCarouselTemplateMessage(
            TemplateCarouselColumnFactoryService templateCarouselColumnFactoryService,
            string altText,
            bool isImageAspectSquare = false,
            bool isImageSizeCover    = true
            )
        {
            Trace.TraceInformation("Start");

            if (!this.RegulateMessageArray())
            {
                Trace.TraceWarning("Regulate Message Array is False");
                Trace.TraceInformation("End");
                return(this);
            }

            MessageBase templateMessage = new TemplateMessage()
            {
                altText  = altText,
                template = new CarouselTemplate()
                {
                    columns          = templateCarouselColumnFactoryService.Columns,
                    imageAspectRatio = isImageAspectSquare ? "square" : "rectangle",
                    imageSize        = isImageSizeCover ? "cover" : "contain"
                }
            };

            this.Messages[this.Messages.Length - 1] = templateMessage;

            Trace.TraceInformation("End");

            return(this);
        }
Esempio n. 23
0
 public void ShouldNotThrowExceptionWhenValueIsButtonsTemplate()
 {
     var message = new TemplateMessage()
     {
         Template = new ButtonsTemplate()
     };
 }
Esempio n. 24
0
 public void ShouldNotThrowExceptionWhenValueIsConfirmTemplate()
 {
     var message = new TemplateMessage()
     {
         Template = new ConfirmTemplate()
     };
 }
Esempio n. 25
0
        public void SendTemplateMessage(TemplateMessage request, TemplateMessageResponse response)
        {
            AtResponse wxr = GetAcc();

            if (String.IsNullOrEmpty(wxr.Expires_in))
            {
                throw new WeChatException("GET_ACCESSTOKEN_FAIL", "获取AccessToken失败");
            }

            Hashtable s1 = new Hashtable {
                { @"keynote1", request.keynote1 }, { @"keynote2", request.keynote2 }
            };
            string    data = XmlAndJsonToHash.HashTableToXml(s1);
            Hashtable s2   = new Hashtable
            {
                { @"touser", request.touser },
                { @"template_id", request.template_id },
                { @"url", request.url },
                { @"data", data }
            };
            string     postData = XmlAndJsonToHash.HashTableToXml(s2);
            String     wxResult = HttpRequestUtil.HttpPost(string.Format(TemplateMessageUrl, wxr.Access_token), postData);
            TmResponse tr       = JsonHelper.Deserialize <TmResponse>(wxResult);

            if (tr.errmsg.ToUpper() == "OK")
            {
                response.errcode = tr.errcode;
                response.errmsg  = tr.errmsg;
                response.ResponseStatus.ErrorCode = "OK";
            }
            else
            {
                throw new WeChatException("SendTemplateMessage_fail", "发送模板消息失败");
            }
        }
        /// <summary>
        /// Handles errors at template compile time, typically related to parsing issues.
        /// </summary>
        /// <param name="msg">The message from Antlr.</param>
        public void CompiletimeError(TemplateMessage msg)
        {
            if (msg == null)
            {
                ThrowUnhandledError("CompiletimeError", null);
                return;
            }

            var helper = new MessageHelper(msg);

            var errorDescription =
                string.Format(
                    CultureInfo.CurrentCulture,
                    Strings.CompiletimeExceptionWrapper,
                    helper.ErrorDescription);

            var errors = new[]
            {
                new ParseError(
                    helper.ErrorExtent,
                    "CompiletimeError",
                    errorDescription)
            };

            ErrorContext.ThrowTerminatingError(
                new ErrorRecord(
                    new ParseException(errors),
                    "CompiletimeError",
                    ErrorCategory.ParserError,
                    msg.Self));
        }
Esempio n. 27
0
        public void Constructor_SerializedCorrectly()
        {
            TemplateMessage message = new TemplateMessage()
            {
                AlternativeText = "Alternative",
                Template        = new ConfirmTemplate
                {
                    Text     = "Confirm",
                    OkAction = new UriAction()
                    {
                        Label = "OkLabel",
                        Url   = new Uri("https://foo.bar")
                    },
                    CancelAction = new PostbackAction()
                    {
                        Label = "CancelLabel",
                        Data  = "Postback",
                        Text  = "CancelText"
                    }
                }
            };

            string serialized = JsonConvert.SerializeObject(message);

            Assert.AreEqual(@"{""type"":""template"",""altText"":""Alternative"",""template"":{""type"":""confirm"",""text"":""Confirm"",""actions"":[{""type"":""uri"",""label"":""OkLabel"",""uri"":""https://foo.bar""},{""type"":""postback"",""label"":""CancelLabel"",""data"":""Postback"",""text"":""CancelText""}]}}", serialized);
        }
Esempio n. 28
0
 public void Template_SetToCarouselTemplate_ThrowsNoException()
 {
     TemplateMessage message = new TemplateMessage()
     {
         Template = new CarouselTemplate()
     };
 }
Esempio n. 29
0
 public void Template_SetToConfirmTemplate_ThrowsNoException()
 {
     TemplateMessage message = new TemplateMessage()
     {
         Template = new ConfirmTemplate()
     };
 }
Esempio n. 30
0
 public void Template_SetToButtonsTemplate_ThrowsNoException()
 {
     TemplateMessage message = new TemplateMessage()
     {
         Template = new ButtonsTemplate()
     };
 }
Esempio n. 31
0
        public void TemplateMessageTest()
        {
            var t = new TemplateMessage(1, "M1");
            t.Text = "WWW";

            var t2 = engine.SaveTemplateMessage(t);
            t2 = engine.GetTemplateMessage(t2.Id);

            Assert.AreEqual(t.Title, t2.Title);
            Assert.AreEqual(t.ProjectId, t2.ProjectId);
            Assert.AreEqual(t.Text, t2.Text);
            Assert.AreNotEqual(t.CreateBy, default(Guid));
            Assert.AreNotEqual(t.CreateOn, default(DateTime));

            foreach (var d in engine.GetTemplateMessages(1))
            {
                engine.RemoveTemplateMessage(d.Id);
            }
        }