public Value[][] Get(GetValue[] valuesToGet) { var groupedByUri = from x in valuesToGet group x by GetUrl(x.Key); var valuesFromEndpoints = new Value[valuesToGet.Length][]; foreach (var values in groupedByUri) { var array = values.ToArray(); var valuesFromCurrentBatch = values.Key.Get(array); for (int i = 0; i < array.Length; i++) { valuesFromEndpoints[Array.IndexOf(valuesToGet, array[i])] = valuesFromCurrentBatch[i]; } } return valuesFromEndpoints; }
public Value[][] Get(GetValue[] valuesToGet) { var values = new List<Value[]>(); hashTable.Batch(actions => { foreach (var value in valuesToGet) { if(value.SpecifiedVersion == null) { var version = actions.Get(value.Key); values.Add(version); } else { var version = actions.Get( value.Key, value.SpecifiedVersion.Value); values.Add(new []{version, }); } } actions.Commit(); }); return values.ToArray(); }