/// <summary> /// Post the specified Event to the Default MessageBus /// </summary> /// <param name="busEvent">Event.</param> public static void Post(MessageBusEvent busEvent) { if (RunPostOnSeperateTask == true) { Task.Run(() => { PostInternal(busEvent); }); } else { PostInternal(busEvent); } }
private static void PostInternal(MessageBusEvent busEvent) { if (!(busEvent is CoreMessageBusEvent)) { foreach (var item in EventHandlers.HandlersForEvent(busEvent.GetType())) { if (item.EventAction != null) { Execute(item.EventAction, busEvent.Sender, busEvent); } } } //find all the registered handlers foreach (var item in EventHandlers.HandlersForEvent(busEvent.EventId)) { if (item.EventAction != null) { Execute(item.EventAction, busEvent.Sender, busEvent); } } }
private static void Execute(Action <object, MessageBusEvent> Action, object Sender, MessageBusEvent Evnt) { Action(Sender, Evnt); }