/// <summary> /// 事件消息解析器 /// </summary> /// <param name="element">消息实体</param> /// <returns></returns> private RequestMessage GetEventRequestMessage(XElement element) { Dictionary <string, object> bugobj = new Dictionary <string, object>(); RequestMessage requestMessage = null; try { if (element == null) { return(null); } var eventType = (Event)Enum.Parse(typeof(Event), element.Element("Event").Value, true); bugobj.Add("eventType", eventType); bugobj.Add("element", element); switch (eventType) { case Event.Unsubscribe: return(new RequestEventMessage(element)); case Event.Location: // return new RequestLocationEventMessage(element); break; case Event.Click: requestMessage = new RequestClickEventMessage(element); break; case Event.Scan: requestMessage = new RequestQREventMessage(element); break; case Event.Subscribe: requestMessage = GetSubscribeRequestMessageForQR(element); break; case Event.View: requestMessage = new RequestViewEventMessage(element); break; //default: // throw new ArgumentException("event type is error"); } } catch (Exception ex) { this.Log(ex); } finally { TxtLogHelper.WriteDebugLog(bugobj); TxtLogHelper.WriteLog_Hour(new TxtLogInfoObject() { LogMessage = "消息实体", LogObject = requestMessage, LogType = EnumLogType.Other }); } return(requestMessage); }