示例#1
0
        private void GetRevisionsQueryString(DocumentDatabase database, DocumentsOperationContext context, out IncludeRevisionsCommand includeRevisions)
        {
            includeRevisions = null;

            var rif = new RevisionIncludeField();
            var revisionsByChangeVectors = GetStringValuesQueryString("revisions", required: false);
            var revisionByDateTimeBefore = GetStringValuesQueryString("revisionsBefore", required: false);

            if (revisionsByChangeVectors.Count == 0 && revisionByDateTimeBefore.Count == 0)
            {
                return;
            }

            if (DateTime.TryParseExact(revisionByDateTimeBefore.ToString(), DefaultFormat.DateTimeFormatsToRead, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime))
            {
                rif.RevisionsBeforeDateTime = dateTime.ToUniversalTime();
            }

            foreach (var changeVector in revisionsByChangeVectors)
            {
                rif.RevisionsChangeVectorsPaths.Add(changeVector);
            }

            includeRevisions = new IncludeRevisionsCommand(database, context, rif);
        }
示例#2
0
 public IncludeRevisionsCommand(DocumentDatabase database, DocumentsOperationContext context, RevisionIncludeField revisionIncludeField) : this(database, context)
 {
     _revisionsChangeVectors         = revisionIncludeField?.RevisionsChangeVectors ?? new HashSet <string>(StringComparer.OrdinalIgnoreCase);
     _pathsForRevisionsChangeVectors = revisionIncludeField?.RevisionsChangeVectorsPaths ?? new HashSet <string>(StringComparer.OrdinalIgnoreCase);
     _revisionsBeforeDateTime        = revisionIncludeField?.RevisionsBeforeDateTime ?? new DateTime();
 }