in Source/NuGetGallery.Operations/Tasks/PopulatePackageFrameworksTask.cs [155:222]
private void ResolveReport(PackageFrameworkReport report)
{
bool error = false;
using (var sqlConnection = new SqlConnection(ConnectionString.ConnectionString))
using (var dbExecutor = new SqlExecutor(sqlConnection))
{
sqlConnection.Open();
foreach (var operation in report.Operations)
{
if (!WhatIf)
{
if (operation.Type == PackageFrameworkOperationType.Add)
{
try
{
dbExecutor.Execute(@"
INSERT INTO PackageFrameworks(TargetFramework, Package_Key)
VALUES (@targetFramework, @packageKey)",
new
{
targetFramework = operation.Framework,
packageKey = report.Key
});
Log.Info(" + Id={0}, Key={1}, Fx={2}", report.Id, report.Key, operation.Framework);
operation.Applied = true;
}
catch (Exception ex)
{
error = true;
operation.Applied = false;
operation.Error = ex.ToString();
}
}
else if (operation.Type == PackageFrameworkOperationType.Remove)
{
try
{
dbExecutor.Execute(@"
DELETE FROM PackageFrameworks
WHERE TargetFramework = @targetFramework AND Package_Key = @packageKey",
new
{
targetFramework = operation.Framework,
packageKey = report.Key
});
Log.Info(" - Id={0}, Key={1}, Fx={2}", report.Id, report.Key, operation.Framework);
operation.Applied = true;
}
catch (Exception ex)
{
error = true;
operation.Applied = false;
operation.Error = ex.ToString();
}
}
}
}
}
if (error)
{
report.State = PackageReportState.Error;
}
else if (report.Operations.All(o => o.Applied))
{
report.State = PackageReportState.Resolved;
}
}