Skip to main content

Get Revisions

Get all revisions

  • Use GetFor to retrieve all of the revisions currently kept for the specified document. Example:
// Get revisions for document 'orders/1-A'
// Revisions will be ordered by most recent revision first
List<Order> orderRevisions = session
.Advanced
.Revisions
.GetFor<Order>(id: "orders/1-A", start: 0, pageSize: 10);

Syntax:

List<T> GetFor<T>(string id, int start = 0, int pageSize = 25);
ParametersTypeDescription
idstringDocument ID for which to retrieve revisions
startintFirst revision to retrieve, used for paging
pageSizeintNumber of revisions to retrieve per results page

Get revisions metadata

  • Use GetMetadataFor to retrieve the metadata for all the revisions currently kept for the specified document. Example:
// Get revisions' metadata for document 'orders/1-A'
List<MetadataAsDictionary> orderRevisionsMetadata = session
.Advanced
.Revisions
.GetMetadataFor(id: "orders/1-A", start: 0, pageSize: 10);

// Each item returned is a revision's metadata, as can be verified in the @flags key
var metadata = orderRevisionsMetadata[0];
var flagsValue = metadata.GetString(Constants.Documents.Metadata.Flags);

Assert.Contains("Revision", flagsValue);

Syntax:

List<MetadataAsDictionary> GetMetadataFor(string id, int start = 0, int pageSize = 25);
ParametersTypeDescription
idstringDocument ID for which to retrieve revisions' metadata
startintFirst revision to retrieve metadata for, used for paging
pageSizeintNumber of revisions to retrieve per results page

Get revisions by creation time

  • Use Get to retrieve a revision by its creation time. Example:
// Get a revision by its creation time
Order revisionFromLastYear = session
.Advanced
.Revisions
// If no revision was created at the specified time,
// then the first revision that precedes it will be returned
.Get<Order>("orders/1-A", DateTime.Now.AddYears(-1));

Syntax:

T Get<T>(string id, DateTime date);
ParameterTypeDescription
idstringDocument ID for which to retrieve the revision by creation time
dateDateTime The revision's creation time

Get revisions by change vector

  • Use Get to retrieve a revision or multiple revisions by their change vectors.
    Example:
// Get revisions metadata 
List<MetadataAsDictionary> revisionsMetadata = session
.Advanced
.Revisions
.GetMetadataFor("orders/1-A", start: 0, pageSize: 25);

// Get the change-vector from the metadata
var changeVector = revisionsMetadata[0].GetString(Constants.Documents.Metadata.ChangeVector);

// Get the revision by its change-vector
Order revision = session
.Advanced
.Revisions
.Get<Order>(changeVector);

Syntax:

// Get a revision by its change vector
T Get<T>(string changeVector);

// Get multiple revisions by their change vectors
Dictionary<string, T> Get<T>(IEnumerable<string> changeVectors);
ParameterTypeDescription
changeVectorstringThe revision's change vector
changeVectorsIEnumerable<string>Change vectors of multiple revisions