Esempio n. 1
0
        /// <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);
        }