EventMessage.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Linq;
  6. namespace WeiXin.Library.Messages
  7. {
  8. class EventMessage : Message
  9. {
  10. private const string EVENT = "Event";
  11. private const string EVENT_KEY = "EventKey";
  12. /// <summary>
  13. ///
  14. /// </summary>
  15. private static string mTemplate;
  16. /// <summary>
  17. /// 模板
  18. /// </summary>
  19. public override string Template
  20. {
  21. get
  22. {
  23. if (string.IsNullOrEmpty(mTemplate))
  24. {
  25. mTemplate = @"<xml>
  26. <ToUserName><![CDATA[{0}]]></ToUserName>
  27. <FromUserName><![CDATA[{1}]]></FromUserName>
  28. <CreateTime>{2}</CreateTime>
  29. <MsgType><![CDATA[event]]></MsgType>
  30. <Event><![CDATA[{3}]]></Event>
  31. <EventKey>{4}</EventKey>
  32. </xml>";
  33. }
  34. return mTemplate;
  35. }
  36. }
  37. /// <summary>
  38. /// 事件类型
  39. /// </summary>
  40. public string Event { get; set; }
  41. /// <summary>
  42. /// 事件KEY值,与自定义菜单接口中KEY值对应
  43. /// </summary>
  44. public string EventKey { get; set; }
  45. /// <summary>
  46. /// 构造函数
  47. /// </summary>
  48. public EventMessage()
  49. {
  50. this.MsgType = "event";
  51. }
  52. /// <summary>
  53. /// 从xml数据加载文本消息
  54. /// </summary>
  55. /// <param name="xml"></param>
  56. public static EventMessage LoadFromXml(string xml)
  57. {
  58. EventMessage em = null;
  59. if (!string.IsNullOrEmpty(xml))
  60. {
  61. XElement element = XElement.Parse(xml);
  62. if (element != null)
  63. {
  64. em = new EventMessage();
  65. em.FromUserName = element.Element(Common.FROM_USERNAME).Value;
  66. em.ToUserName = element.Element(Common.TO_USERNAME).Value;
  67. em.CreateTime = element.Element(Common.CREATE_TIME).Value;
  68. em.Event =element.Element(EVENT).Value;
  69. em.EventKey = element.Element(EVENT_KEY).Value;
  70. }
  71. }
  72. return em;
  73. }
  74. }
  75. }