protected override bool ProtectedExecute()
        {
            // 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
            IndexManager.DeleteDocuments(new[] { new SnTerm(IndexFieldName.NodeId, NodeId) }, versioningInfo);

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

            foreach (var doc in docs)
            {
                IndexManager.AddDocument(doc, versioningInfo);
            }

            return(true);
        }
 protected override bool ProtectedExecute()
 {
     return(IndexManager.AddDocument(Document, Versioning));
 }