public bool RemoveSubscriptions(IEnumerable<Subscription> subscriptions)
{
if (subscriptions == null) throw new ArgumentNullException("subscriptions");
bool removed = false;
List<Subscription> subscriptionsToDelete = new List<Subscription>();
lock (SyncRoot)
{
foreach (Subscription subscription in subscriptions)
{
if (m_subscriptions.Remove(subscription))
{
if (subscription.Created)
{
subscriptionsToDelete.Add(subscription);
}
removed = true;
}
}
}
foreach (Subscription subscription in subscriptionsToDelete)
{
subscription.Delete(true);
}
if (removed)
{
if (m_SubscriptionsChanged != null)
{
m_SubscriptionsChanged(this, null);
}
}
return true;
}