示例#1
0
 public Task StartAsync(bool captureResults = true)
 {
     _activity       = new ActivityTracer("Begin transaction");
     Active          = true;
     _captureResults = captureResults;
     return(_connection.CallAsync(RedisReader.ReadStatus, "MULTI")
            .ContinueWith(x => OnTransactionStarted(x.Result)));
 }
        private Task <T> Write <T>(RedisCommand <T> command)
        {
            using (new ActivityTracer("Write command async"))
            {
                if (!_connection.Connected)
                {
                    throw new InvalidOperationException("RedisClientAsync is not connected");
                }

                return(_connection.CallAsync(command.Parser, command.Command, command.Arguments));
            }
        }
示例#3
0
 // TODO: check for mismatch b/t _asTransaction and _transactionHandler.Active
 public void Write <T>(RedisCommand <T> command)
 {
     if (_transactionhandler.Active)
     {
         _io = _transactionhandler.WriteAsync(command);
     }
     else
     {
         _io = _connection.CallAsync(command.Parser, command.Command, command.Arguments)
               .ContinueWith(HandleResult);
     }
 }