예제 #1
0
        public Task <IEnumerable <object> > Exec() =>
        ExecuteWithSession(async session =>
        {
            var result = await _transactionClient.Exec(session).ConfigureAwait(false);

            if (result.IsFailure)
            {
                if (string.Equals(result.Error, RedisConstants.TransactionAborted))
                {
                    throw new RedisMultiExecutionFailedException(
                        "Redis EXEC failed: the key was modified",
                        null);
                }

                throw new RedisException(
                    $"Error while executing transaction [REDIS CODE: {result.Error}]",
                    result.Exception);
            }

            return(result.Value.AsEnumerable());
        });