public async Task AddSubscription(CollectionSubscription subscription) { await Lock.WaitAsync(); try { if (Subscriptions.All(s => s.ReferenceId != subscription.ReferenceId)) { Subscriptions.Add(subscription); } } finally { Lock.Release(); } }