Exemple #1
0
        /// <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;
 }
Exemple #3
0
        /// <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;
 }
Exemple #6
0
 public DefaultContextProvider(IEventConfiguration configuration, IMemoizer memoizer, IEventPublisher publisher)
 {
     Configuration = configuration;
     Memoizer      = memoizer;
     Publisher     = publisher;
 }