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
IChangesObservable<IndexChange> ForIndex(string indexName);
Parameters | ||
---|---|---|
indexName | string | Name of an index for which notifications will be processed. |
Return value | |
---|---|
IChangesObservable<IndexChange> | 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.None:
//Do someting
break;
case IndexChangeTypes.BatchCompleted:
//Do someting
break;
case IndexChangeTypes.IndexAdded:
//Do someting
break;
case IndexChangeTypes.IndexRemoved:
//Do someting
break;
case IndexChangeTypes.IndexDemotedToIdle:
//Do someting
break;
case IndexChangeTypes.IndexPromotedFromIdle:
//Do someting
break;
case IndexChangeTypes.IndexDemotedToDisabled:
//Do someting
break;
case IndexChangeTypes.IndexMarkedAsErrored:
//Do someting
break;
case IndexChangeTypes.SideBySideReplace:
//Do someting
break;
case IndexChangeTypes.IndexPaused:
//Do someting
break;
case IndexChangeTypes.LockModeChanged:
//Do someting
break;
case IndexChangeTypes.PriorityChanged:
//Do someting
break;
default:
throw new ArgumentOutOfRangeException();
}
});
ForAllIndexes
Index changes for all indexex can be observed using ForAllIndexes
method.
Return value | |
---|---|
IChangesObservable<IndexChange> | Observable that allows to add subscriptions to notifications for all indexes. |
Syntax
IChangesObservable<IndexChange> ForAllIndexes();
Example
IDisposable subscription = store
.Changes()
.ForAllIndexes()
.Subscribe(change => Console.WriteLine("{0} on index {1}", change.Type, change.Name));
IndexChange
Properties
Name | Type | Description |
---|---|---|
Type | IndexChangeTypes | Change type |
Name | string | Index name |
Etag | long? | Index Etag |
IndexChangeTypes
Name | Value |
---|---|
None | 0 |
BatchCompleted | 1 |
IndexAdded | 8 |
IndexRemoved | 16 |
IndexDemotedToIdle | 32 |
IndexPromotedFromIdle | 64 |
IndexDemotedToDisabled | 256 |
IndexMarkedAsErrored | 512 |
SideBySideReplace | 1024 |
IndexPaused | 4096 |
LockModeChanged | 8192 |
PriorityChanged | 16384 |
Remarks
To get more method overloads, especially ones supporting delegates, please add the
System.Reactive.Core package to your project.