public static RedisResultInfo MapResult( RedisTargetInfo targetInfo, RedisBatchInfo batchInfo, RedisCommandInfo commandInfo, object result) { switch (result) { case string str: return(new Simple(targetInfo, commandInfo, str)); case long l: return(new Integer(targetInfo, commandInfo, l)); case int i: return(new Integer(targetInfo, commandInfo, i)); case byte[] bytes: return(new Bulk(targetInfo, commandInfo, bytes)); case object[] array: return(new TransactionBulk(targetInfo, batchInfo, commandInfo, array)); default: return(new None(targetInfo, commandInfo)); } }
public TransactionBulk( RedisTargetInfo targetInfo, RedisBatchInfo batchInfo, RedisCommandInfo commandInfo, object[] array) { TargetInfo = targetInfo; BatchInfo = batchInfo; CommandInfo = commandInfo; var commandInfos = batchInfo.CommandInfos.SkipWhile(c => !c.IsMulti) .Skip(1) .ToArray(); Array = array.Select((item, i) => MapResult(targetInfo, i < commandInfos.Length ? commandInfos[i] : null, item)) .ToArray(); }