Beispiel #1
0
        protected override async Task <bool> ProtectedExecuteAsync(CancellationToken cancellationToken)
        {
            // getting common versioning info
            var head           = NodeHead.Get(NodeId);
            var versioningInfo = new VersioningInfo
            {
                Delete              = EmptyIntArray,
                Reindex             = EmptyIntArray,
                LastDraftVersionId  = head.LastMinorVersionId,
                LastPublicVersionId = head.LastMajorVersionId
            };

            // delete documents by NodeId
            await IndexManager.DeleteDocumentsAsync(new[] { new SnTerm(IndexFieldName.NodeId, NodeId) },
                                                    versioningInfo, cancellationToken).ConfigureAwait(false);

            // add documents of all versions
            var docs = IndexManager.LoadIndexDocumentsByVersionId(head.Versions.Select(v => v.VersionId).ToArray());

            //TODO: can we make this parallel?
            foreach (var doc in docs)
            {
                await IndexManager.AddDocumentAsync(doc, versioningInfo, cancellationToken).ConfigureAwait(false);
            }

            return(true);
        }
Beispiel #2
0
 protected override Task <bool> ProtectedExecuteAsync(CancellationToken cancellationToken)
 {
     return(IndexManager.DeleteDocumentsAsync(new[]
     {
         new SnTerm(IndexFieldName.InTree, TreeRoot),
         new SnTerm(IndexFieldName.Path, TreeRoot)
     }, null, cancellationToken));
 }