/// <summary> /// The get expand node quote. /// </summary> /// <param name="e"> /// The e. /// </param> /// <returns> /// The <see cref="IConfigNodeWrapper"/>. /// </returns> public IConfigNodeWrapper GetExpandNodeQuote(IEvent e) { try { var nodeWrapper = this.Parse(e); if (nodeWrapper == null) { return(null); } foreach (IConfigNodeWrapper expandDataNode in nodeWrapper.Children) { var eventTreeNode = new EventTreeBodyNode(); Type eventTreeType = eventTreeNode.GetType(); Type nodetype = expandDataNode.GetType(); if (eventTreeType == nodetype) { return(expandDataNode); } } return(null); } catch (Exception ex) { Log.Error(string.Format("GetExpandNodeQuoteException event id = {0},error message = {1}", e.EventIdentifier, ex.Message)); return(null); } }
/// <summary> /// The parse. /// </summary> /// <param name="e"> /// The e. /// </param> /// <returns> /// The <see cref="IConfigNodeWrapper"/>. /// </returns> public IConfigNodeWrapper Parse(IEvent e) { try { if (e.RawData == null) { return(null); } var stream = new MemoryStream(e.RawData); //IEventConfiguration eventConfiguration = new ConfigurationManager().GetEventConfiguration(e.Version); IEventConfiguration eventConfiguration = ConfigurationManager.Singleton.GetEventConfiguration(e.Version); IConfigNode eventConfigHeadNode = eventConfiguration.EventHeadNode; if (eventConfigHeadNode == null) { return(null); } var rootNode = new EventTreeRootNode { ConfigurationNode = eventConfigHeadNode, EventIndex = e.DisplayIndex }; foreach (var child in eventConfigHeadNode.Children) { rootNode.Children.Add(new ConfigNodeWrapper { ConfigurationNode = child, Parent = rootNode }); } rootNode.InitializeValue(stream, e.Version); int eventId; if (Int32.TryParse(rootNode.GetChildNodeById("EventType").Value.ToString(), out eventId) == true) { IConfigNode eventConfigBodyNode = eventConfiguration.GetEventBodyNodeById( Convert.ToInt32(eventId)); if (eventConfigBodyNode != null) { // wrong "EventType" cause null var eventTreeBodyNode = new EventTreeBodyNode { ConfigurationNode = eventConfigBodyNode, Parent = rootNode }; this.GenerateEventTreeChildrenNode(eventTreeBodyNode); rootNode.Children.Add(eventTreeBodyNode); eventTreeBodyNode.InitializeValue(stream, e.Version); } return(rootNode); } } catch (Exception ex) { Log.Error(string.Format("二次解析出错,event id = {0},error message = {1}", e.EventIdentifier, ex.Message)); return(null); } return(null); }