Changes API: How to subscribe to index changes?
Following methods allow you to subscribe to index changes:
ForIndex
Index changes for one index can be observed using ForIndex
method.
Syntax
IObservableWithTask<IndexChangeNotification>
ForIndex(string indexName);
Parameters | ||
---|---|---|
indexName | string | Name of an index for which notifications will be processed. |
Return value | |
---|---|
IObservableWithTask<IndexChangeNotification> | Observable that allows to add subscriptions to notifications for index with given name. |
Example
IDisposable subscription = store
.Changes()
.ForIndex("Orders/All")
.Subscribe(
change =>
{
switch (change.Type)
{
case IndexChangeTypes.IndexAdded:
// do something
break;
case IndexChangeTypes.IndexDemotedToAbandoned:
// do something
break;
case IndexChangeTypes.IndexDemotedToDisabled:
// do something
break;
case IndexChangeTypes.IndexDemotedToIdle:
// do something
break;
case IndexChangeTypes.IndexMarkedAsErrored:
// do something
break;
case IndexChangeTypes.IndexPromotedFromIdle:
// do something
break;
case IndexChangeTypes.IndexRemoved:
// do something
break;
case IndexChangeTypes.MapCompleted:
// do something
break;
case IndexChangeTypes.ReduceCompleted:
// do something
break;
case IndexChangeTypes.RemoveFromIndex:
// do something
break;
}
});
ForAllIndexes
Index changes for all indexex can be observed using ForAllIndexes
method.
Return value | |
---|---|
IObservableWithTask<IndexChangeNotification> | Observable that allows to add subscriptions to notifications for all indexes. |
Syntax
IObservableWithTask<IndexChangeNotification>
ForAllIndexes();
Example
IDisposable subscription = store
.Changes()
.ForAllIndexes()
.Subscribe(change => Console.WriteLine("{0} on index {1}", change.Type, change.Name));
Remarks
Information
To get more method overloads, especially the ones supporting delegates, please add Reactive Extensions package to your project.