in Source/NuGetGallery.Operations/Tasks/CreateWarehouseReportsTask.cs [330:357]
private static int TotalDownloads(JObject report)
{
JToken token;
if (report.TryGetValue("Items", out token))
{
if (token is JArray)
{
int total = 0;
for (int i = 0; i < ((JArray)token).Count; i++)
{
total += TotalDownloads((JObject)((JArray)token)[i]);
}
report["Downloads"] = total;
return total;
}
else
{
int total = 0;
foreach (KeyValuePair<string, JToken> child in ((JObject)token))
{
total += TotalDownloads((JObject)child.Value);
}
report["Downloads"] = total;
return total;
}
}
return (int)report["Downloads"];
}