Castle.ActiveRecord.EventListenerContributor.Contribute C# (CSharp) Метод

Contribute() публичный Метод

Configures the configuration with the registered listeners according the config
public Contribute ( NHibernate.Cfg.Configuration configuration ) : void
configuration NHibernate.Cfg.Configuration the configuration object to add the listeners to
Результат void
        public void Contribute(Configuration configuration)
        {
            foreach (var eventType in eventTypes)
            {
                if (!listenersPerEvent.ContainsKey(eventType) || listenersPerEvent[eventType] == null)
                    continue;

                var currentListeners = CollectListeners(eventType);
                var listenerInstances = currentListeners.Select(GetInstance);
                var replaceExistingListeners = currentListeners.Any(c => c.ReplaceExisting);

                var listenersToSet = replaceExistingListeners
                                     	? new HashedSet<object>()
                                     	: new HashedSet<object>(GetExistingListeners(configuration, eventType));

                foreach (var l in listenerInstances.Where(l => listenersToSet.All(o => o.GetType() != l.GetType()))) {
                    listenersToSet.Add(l);
                }

                SetListeners(configuration, eventType, new ArrayList(listenersToSet).ToArray(eventType));
            }
        }