public int[] Put(AddValue[] valuesToAdd) { var groupedByUri = from x in valuesToAdd group x by GetUrl(x.Key); var versions = new int[valuesToAdd.Length]; foreach (var values in groupedByUri) { var array = values.ToArray(); var versionForCurrentBatch = values.Key.Put(array); for (int i = 0; i < array.Length; i++) { versions[Array.IndexOf(valuesToAdd, array[i])] = versionForCurrentBatch[i]; } } return versions; }
public int[] Put(AddValue[] valuesToAdd) { var versions = new List<int>(); hashTable.Batch(actions => { foreach (var value in valuesToAdd) { var version = actions.Put( value.Key, value.ParentVersions ?? new int[0], value.Bytes); versions.Add(version); } actions.Commit(); }); return versions.ToArray(); }