/// <summary> /// The update event tree head node. /// </summary> private void UpdateEventTreeHeadNode() { if (null != this.currentEventTreeHeadNode) { this.currentEventTreeHeadNode.Dispose(); } IEventConfiguration eventConfiguration = ConfigurationManager.Singleton.GetEventConfiguration(this.version); IConfigNode eventConfigHeadNode = eventConfiguration.EventHeadNode; if (eventConfigHeadNode == null) { return; } this.currentEventTreeHeadNode = new EventTreeRootNode { ConfigurationNode = eventConfigHeadNode }; foreach (var child in eventConfigHeadNode.Children) { this.currentEventTreeHeadNode.Children.Add( new ConfigNodeWrapper { ConfigurationNode = child, Parent = this.currentEventTreeHeadNode }); } }
public MikadoContextProvider(IEventConfiguration configuration, IMemoizer memoizer, IEventPublisher publisher, IRunRules rulesRunner) { Configuration = configuration; Memoizer = memoizer; Publisher = publisher; _rulesRunner = rulesRunner; }
/// <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); }
public MikdaoContextProvider(IEventConfiguration configuration, IMemoizer memoizer, IEventPublisher publisher, IKeyAccessor keyAccessor, IRunRules rulesRunner) { Configuration = configuration; Memoizer = memoizer; Publisher = publisher; KeyAccessor = keyAccessor; _rulesRunner = rulesRunner; }
public EventConfiguration(IEventConfiguration other) { StateType = other.StateType; EventType = other.EventType; OnValidate = other.OnValidate; OnTrigger = other.OnTrigger; OnExecute = other.OnExecute; IsLoop = other.IsLoop; }
public DefaultContextProvider(IEventConfiguration configuration, IMemoizer memoizer, IEventPublisher publisher) { Configuration = configuration; Memoizer = memoizer; Publisher = publisher; }