in Source/NuGetGallery.Operations/Tasks/ReplacePackageFileTask.cs [21:61]
public override void ExecuteCommand()
{
using (var sqlConnection = new SqlConnection(ConnectionString.ConnectionString))
using (var dbExecutor = new SqlExecutor(sqlConnection))
{
sqlConnection.Open();
var package = Util.GetPackage(
dbExecutor,
PackageId,
PackageVersion);
if (package == null)
{
Log.Info("Package '{0}.{1}' does not exist; exiting.");
return;
}
new BackupPackageFileTask {
StorageAccount = StorageAccount,
PackageId = package.Id,
PackageVersion = package.Version,
PackageHash = package.Hash
}.ExecuteCommand();
var hash = Util.GenerateHash(ReplacementFile.ReadAllBytes());
Log.Info("Updating hash for package '{0}.{1}' to '{2}'", package.Id, package.Version, hash);
dbExecutor.Execute(
"UPDATE Packages SET Hash = @hash WHERE [Key] = @key",
new { @key = package.Key, hash });
Log.Info("Uploading replacement file for package '{0}.{1}'", package.Id, package.Version);
ReplacementFile.Position = 0;
new UploadPackageTask {
StorageAccount = StorageAccount,
PackageId = package.Id,
PackageVersion = package.Version,
PackageFile = ReplacementFile
}.ExecuteCommand();
}
}