Skip to main content

Changes API: How to subscribe to data subscription changes?

All subscription changes can be tracked by using ForAllDataSubscriptions and ForDataSubscription methods.

Syntax

ForAllDataSubscriptions

IObservableWithTask<DataSubscriptionChangeNotification>
ForAllDataSubscriptions();
Return value
IObservableWithTask<DataSubscriptionChangeNotification>Observable that allows to add subscriptions to notifications for all data subscription changes.

ForDataSubscription

IObservableWithTask<DataSubscriptionChangeNotification> 
ForDataSubscription(long id);
Parameters
idlongId of a data subscription for which notifications will be processed.
Return value
IObservableWithTask<DataSubscriptionChangeNotification>Observable that allows to add subscriptions to notifications for a specified data subscription changes.

Example I

IDisposable subscription = store
.Changes()
.ForAllDataSubscriptions()
.Subscribe(
change =>
{
var subscriptionId = change.Id;

switch (change.Type)
{
case DataSubscriptionChangeTypes.SubscriptionOpened:
// do something
break;
case DataSubscriptionChangeTypes.SubscriptionReleased:
// do something
break;
}
});

Example II

var subscriptionId = 3;

IDisposable subscription = store
.Changes()
.ForDataSubscription(subscriptionId)
.Subscribe(
change =>
{
switch (change.Type)
{
case DataSubscriptionChangeTypes.SubscriptionOpened:
// do something
break;
case DataSubscriptionChangeTypes.SubscriptionReleased:
// do something
break;
}
});

Remarks

To get more method overloads, especially the ones supporting delegates, please add Reactive Extensions package to your project.