public TableEventSubscription Add(ITable table, object action, Func <IDisposable> subscription) { lock (_lock) { var exists = _subscriptions.FirstOrDefault(t => t.Table == table && t.Action == action); if (exists == null) { exists = new EventSub(table, action, subscription.Invoke()); _subscriptions.Add(exists); ObserverCount++; _hasObservers.OnNext(ObserverCount != 0); } return(new TableEventSubscription(this, exists)); } }
internal TableEventSubscription(SubscriptionManager subscriptionManager, EventSub eventSub) { _subscriptionManager = subscriptionManager; _eventSub = eventSub; }