in Source/NuGetGallery.Operations/Tasks/ReplicatePackageStatisticsTask.cs [132:176]
private static void PutDownloadRecords(string connectionString, DownloadBatch batch, CancellationToken ct)
{
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
foreach (DownloadBatchRow row in batch.Rows)
{
if (ct.IsCancellationRequested)
{
return;
}
SqlCommand command = new SqlCommand("AddDownloadFact", connection);
command.CommandType = CommandType.StoredProcedure;
command.CommandTimeout = 120;
command.Parameters.AddWithValue("@OriginalKey", row.OriginalKey);
command.Parameters.AddWithValue("@PackageId", row.PackageId);
command.Parameters.AddWithValue("@PackageVersion", row.PackageVersion);
command.Parameters.AddWithValue("@PackageListed", row.PackageListed ? 1 : 0);
command.Parameters.AddWithValue("@PackageTitle", AddNullableString(row.PackageTitle));
command.Parameters.AddWithValue("@PackageDescription", AddNullableString(row.PackageDescription));
command.Parameters.AddWithValue("@PackageIconUrl", AddNullableString(row.PackageIconUrl));
command.Parameters.AddWithValue("@DownloadUserAgent", row.DownloadUserAgent);
command.Parameters.AddWithValue("@DownloadOperation", row.DownloadOperation);
command.Parameters.AddWithValue("@DownloadTimestamp", row.DownloadTimestamp);
command.Parameters.AddWithValue("@DownloadProjectTypes", AddNullableString(row.DownloadProjectTypes));
command.Parameters.AddWithValue("@DownloadDependentPackageId", AddNullableString(row.DownloadDependentPackageId));
command.ExecuteNonQuery();
}
}
}
catch (Exception e)
{
string msg = string.Format("(DEBUG) Exception in PutDownloadRecords (warehouse side): {0}", e.Message);
throw new ApplicationException(msg, e);
}
}