public override void ExecuteCommand()

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();
            }
        }