예제 #1
0
        private static void SaveNodeBaseData(NodeData nodeData, SavingAlgorithm savingAlgorithm, INodeWriter writer, NodeSaveSettings settings, out int lastMajorVersionId, out int lastMinorVersionId)
        {
            switch (savingAlgorithm)
            {
            case SavingAlgorithm.CreateNewNode:
                //nodeData.Id = writer.InsertNodeRow(nodeData);
                //nodeData.VersionId = writer.InsertVersionRow(nodeData);
                writer.InsertNodeAndVersionRows(nodeData, out lastMajorVersionId, out lastMinorVersionId);
                break;

            case SavingAlgorithm.UpdateSameVersion:
                writer.UpdateNodeRow(nodeData);
                writer.UpdateVersionRow(nodeData, out lastMajorVersionId, out lastMinorVersionId);
                break;

            case SavingAlgorithm.CopyToNewVersionAndUpdate:
                writer.UpdateNodeRow(nodeData);
                writer.CopyAndUpdateVersion(nodeData, settings.CurrentVersionId, out lastMajorVersionId, out lastMinorVersionId);
                break;

            case SavingAlgorithm.CopyToSpecifiedVersionAndUpdate:
                writer.UpdateNodeRow(nodeData);
                writer.CopyAndUpdateVersion(nodeData, settings.CurrentVersionId, settings.ExpectedVersionId, out lastMajorVersionId, out lastMinorVersionId);
                break;

            default:
                throw new NotImplementedException("Unknown SavingAlgorithm: " + savingAlgorithm);
            }
        }