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