private void Next(EntityLinkEvent <T, R> @event) { foreach (var observer in observers) { observer.Key.OnNext(@event); } //Parallel.ForEach(observers, observer => observer.Key.OnNext(@event)); }
void IObserver <EntityLinkEvent <Authorization.Role, Authorization.Principal> > .OnNext(EntityLinkEvent <Authorization.Role, Authorization.Principal> value) { using (log.Activity(m => m($"Processing {nameof(EntityLinkEvent<Authorization.Role, Authorization.Principal>)} event"))) { //add if (value.Link) { OnAdded(value.Left, value.Right); } //remove else { OnRemoved(value.Left, value.Right); } } }