You are currently browsing legacy 3.0 version of documentation. Click here to switch to the newest 4.2 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

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
id long Id 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

Information

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