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(string key, int specifiedVersion) { var cachedValue = cache[GetKey(key, specifiedVersion)]; if (cachedValue != null && cachedValue != DBNull.Value) return (Value)cachedValue; Value val = null; ApplyToKeyAndActiveVersions(data, new[] { specifiedVersion }, key, version => { val = new Value { Key = key, Data = Api.RetrieveColumn(session, data, dataColumns["data"]), Version = specifiedVersion }; }); cache[GetKey(key, specifiedVersion)] = (object)val ?? DBNull.Value; return val; }