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