public IList <HandlerInvokeData> Resolve(Event eventInstance, Type handlerType) { List <HandlerInvokeData> instance = Cache.listHandlersInvokeData.GetInstance(); IList <HandlerBroadcastInvokeData> handlers = this.handlerCollector.GetHandlers(handlerType); int count = handlers.Count; for (int i = 0; i < count; i++) { HandlerBroadcastInvokeData invokeData = handlers[i]; if (invokeData.IsActual() || this.UpdateInvokeData(invokeData, eventInstance)) { instance.Add(invokeData); } } return(instance); }
protected bool UpdateInvokeData(HandlerBroadcastInvokeData invokeData, Event eventInstance) { HandlerInvokeGraph handlerInvokeGraph = invokeData.Handler.HandlerInvokeGraph.Init(); this.entityAsList.Clear(); this.entityAsList.Add(invokeData.Entity); bool flag = combinator.Combine(handlerInvokeGraph, this.entityAsList); if (flag) { invokeData.Update(eventInstance, handlerInvokeGraph); } else { invokeData.UpdateForEmptyCall(); } handlerInvokeGraph.Clear(); return(flag); }