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); } }