private bool AddSubscription(EventProviderSubscription subscription) { if (subscription.Name == null && subscription.ProviderID == Guid.Empty) { throw new InvalidConfigurationException("Provided subscription missing name and GUID values"); } var newSubscription = true; if (this.subscriptions.Contains(subscription)) { newSubscription = false; var currentSubscription = this.subscriptions.First(s => s.Equals(subscription)); currentSubscription.MinimumLevel = (EventLevel)Math.Max((int)currentSubscription.MinimumLevel, (int)subscription.MinimumLevel); currentSubscription.Keywords |= subscription.Keywords; } else { this.subscriptions.Add(subscription); } return(newSubscription); }
public void SubscribeToEvents(EventProviderSubscription subscription) { if (subscription == null) { throw new ArgumentNullException("subscription"); } if (subscription.Source != null) { this.SubscribeToEvents(subscription.Source.Guid, subscription.MinimumLevel, subscription.Keywords); } else { this.SubscribeToEvents(subscription.ProviderID, subscription.MinimumLevel, subscription.Keywords); } }
private bool Equals(EventProviderSubscription other) { return(this.ProviderID.Equals(other.ProviderID) && string.Equals(this.Name, other.Name, StringComparison.OrdinalIgnoreCase)); }
public void SubscribeToEvents(EventProviderSubscription subscription) { if (subscription == null) { throw new ArgumentNullException("subscription"); } if (subscription.Source != null) { this.SubscribeToEvents(subscription.Source, subscription.MinimumLevel, subscription.Keywords); } else { throw new NotSupportedException("Subscription to GUIDs is not supported"); } }