Exemple #1
0
        public SingleNodeBatchCommand CreateRequest()
        {
            var result = _session.PrepareForSaveChanges();

            _onSuccessfulRequest  = result.OnSuccess;
            _sessionCommandsCount = result.SessionCommands.Count;

            result.SessionCommands.AddRange(result.DeferredCommands);
            _session.ValidateClusterTransaction(result);

            _allCommandsCount = result.SessionCommands.Count;

            if (_allCommandsCount == 0)
            {
                return(null);
            }

            _session.IncrementRequestCount();

            _entities = result.Entities;

            if (_session.TransactionMode == TransactionMode.ClusterWide)
            {
                return(new ClusterWideBatchCommand(_session.Conventions, _session.Context, result.SessionCommands, result.Options));
            }

            return(new SingleNodeBatchCommand(_session.Conventions, _session.Context, result.SessionCommands, result.Options));
        }