private void fetch(Entry[] entries)
{
var requests = entries.ToDictionary(x => x.Request.RequestId, x => x);
var parameter = requests.Values.Select(x => x.Request).ToArray();
try
{
var results = _storage.FetchEvent(parameter);
//these can't fail as they're try operations.
foreach (var requestId in requests.Keys)
{
if (results.ContainsKey(requestId) == false)
requests[requestId].SignalNotFound();
else
requests[requestId].SignalResult(results[requestId]);
}
}
catch (Exception e)
{
foreach (var entry in entries)
entry.Fail(e);
}
}