private VersioningInfo GetVersioningInfo(DocumentPopulatorData state) { var settings = state.Settings; var mustReindex = new List <int>(); if (settings.LastMajorVersionIdBefore != settings.LastMajorVersionIdAfter) { mustReindex.Add(settings.LastMajorVersionIdBefore); mustReindex.Add(settings.LastMajorVersionIdAfter); } if (settings.LastMinorVersionIdBefore != settings.LastMinorVersionIdAfter) { mustReindex.Add(settings.LastMinorVersionIdBefore); mustReindex.Add(settings.LastMinorVersionIdAfter); } return(new VersioningInfo { LastDraftVersionId = settings.LastMinorVersionIdAfter, LastPublicVersionId = settings.LastMajorVersionIdAfter, Delete = settings.DeletableVersionIds.ToArray(), Reindex = mustReindex.Except(new[] { 0, state.Node.VersionId }).Except(settings.DeletableVersionIds).ToArray() }); }
// caller: Node.Save, Node.SaveCopied public object BeginPopulateNode(Node node, NodeSaveSettings settings, string originalPath, string newPath) { if (node == null) { throw new ArgumentNullException(nameof(node)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (originalPath == null) { throw new ArgumentNullException(nameof(originalPath)); } if (newPath == null) { throw new ArgumentNullException(nameof(newPath)); } var populatorData = new DocumentPopulatorData { Node = node, Settings = settings, OriginalPath = originalPath, NewPath = newPath, NodeHead = settings.NodeHead, IsNewNode = node.Id == 0, }; return(populatorData); }
// caller: CommitPopulateNode private static void UpdateVersion(DocumentPopulatorData state, IndexDocumentData indexDocumentData) { foreach (var versionId in state.Settings.DeletableVersionIds) { ExecuteActivity(CreateActivity(IndexingActivityType.RemoveDocument, state.Node.Id, versionId, 0, null, null)); } if (!state.Settings.DeletableVersionIds.Contains(state.Node.VersionId)) { ExecuteActivity(CreateActivity(IndexingActivityType.UpdateDocument, state.Node.Id, state.Node.VersionId, state.Node.VersionTimestamp, null, indexDocumentData)); } }
// caller: Node.Save, Node.SaveCopied public object BeginPopulateNode(Node node, NodeSaveSettings settings, string originalPath, string newPath) { var populatorData = new DocumentPopulatorData { Node = node, Settings = settings, OriginalPath = originalPath, NewPath = newPath, NodeHead = settings.NodeHead, IsNewNode = node.Id == 0, }; return(populatorData); }
// caller: CommitPopulateNode private static void UpdateVersion(DocumentPopulatorData state, IndexDocumentData indexDocumentData) { foreach (var versionId in state.Settings.DeletableVersionIds) ExecuteActivity(CreateActivity(IndexingActivityType.RemoveDocument, state.Node.Id, versionId, 0, null, null));//UNDONE: SingleVersion if (!state.Settings.DeletableVersionIds.Contains(state.Node.VersionId)) ExecuteActivity(CreateActivity(IndexingActivityType.UpdateDocument, state.Node.Id, state.Node.VersionId, state.Node.VersionTimestamp, null, indexDocumentData));//UNDONE: SingleVersion }
// caller: Node.Save, Node.SaveCopied public object BeginPopulateNode(Node node, NodeSaveSettings settings, string originalPath, string newPath) { var populatorData = new DocumentPopulatorData { Node = node, Settings = settings, OriginalPath = originalPath, NewPath = newPath, NodeHead = settings.NodeHead, IsNewNode = node.Id == 0, }; return populatorData; }
// caller: CommitPopulateNode private static void UpdateVersion(DocumentPopulatorData state, VersioningInfo versioningInfo, IndexDocumentData indexDocumentData) { CreateActivityAndExecute(IndexingActivityType.UpdateDocument, state.OriginalPath, state.Node.Id, state.Node.VersionId, state.Node.VersionTimestamp, null, versioningInfo, indexDocumentData); }
// caller: CommitPopulateNode private static STT.Task UpdateVersionAsync(DocumentPopulatorData state, VersioningInfo versioningInfo, IndexDocumentData indexDocumentData, CancellationToken cancellationToken) { return(CreateActivityAndExecuteAsync(IndexingActivityType.UpdateDocument, state.OriginalPath, state.Node.Id, state.Node.VersionId, state.Node.VersionTimestamp, versioningInfo, indexDocumentData, cancellationToken)); }