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); }
protected override Task <bool> ProtectedExecuteAsync(CancellationToken cancellationToken) { return(IndexManager.AddDocumentAsync(Document, Versioning, cancellationToken)); }