SenseNet.ContentRepository.Storage.DataBackingStore.SaveNodeData C# (CSharp) Method

SaveNodeData() static private method

static private SaveNodeData ( Node node, NodeSaveSettings settings, IndexDocumentData &indexDocument ) : void
node Node
settings NodeSaveSettings
indexDocument IndexDocumentData
return void
        internal static void SaveNodeData(Node node, NodeSaveSettings settings, out IndexDocumentData indexDocument)
        {
            indexDocument = null;

            var isNewNode = node.Id == 0;
            var data = node.Data;
            var deadlockCount = 0;
            var isDeadlock = false;
            while (deadlockCount++ < maxDeadlockIterations)
            {
                isDeadlock = !SaveNodeDataTransactional(node, settings, out indexDocument);
                if (!isDeadlock)
                    break;
                Logger.WriteWarning("Deadlock detected in SaveNodeData",
                    new Dictionary<string, object> { { "Id: ", node.Id }, { "Path: ", node.Path }, { "Version: ", node.Version } });
                System.Threading.Thread.Sleep(sleepIfDeadlock);
            }

            if (isNewNode)
                Logger.WriteVerbose("Node created.", CollectLoggerProperties, data);
            else
                Logger.WriteVerbose("Node updated.", CollectLoggerProperties, data);
        }
        private static bool SaveNodeDataTransactional(Node node, NodeSaveSettings settings, out IndexDocumentData indexDocument)