/// <summary> /// Publish event /// </summary> /// <typeparam name="T">Type</typeparam> /// <param name="eventMessage">Event message</param> public virtual void Publish <T>(T eventMessage) { //get all event subscribers, excluding from not installed plugins var subscribers = _subscriptionService.GetSubscriptions <T>() .Where(subscriber => PluginManager.FindPlugin(subscriber.GetType())?.Installed ?? true).ToList(); //publish event to subscribers subscribers.ForEach(subscriber => PublishToConsumer(subscriber, eventMessage)); _notificationHandler.NotifyObservers(eventMessage); }