public override void ExecuteCommand()

in Source/NuGetGallery.Operations/Tasks/Backups/BackupPackageFileTask.cs [27:79]


        public override void ExecuteCommand()
        {
            var client = CreateBlobClient();
            var backupClient = BackupStorage.CreateCloudBlobClient();

            var backupBlobs = backupClient.GetContainerReference("package-backups");
            var packageBlobs = client.GetContainerReference("packages");
            if (!WhatIf)
            {
                backupBlobs.CreateIfNotExists();
            }

            var backupFileName = Util.GetPackageBackupFileName(
                PackageId,
                PackageVersion,
                PackageHash);
            var backupPackageBlob = backupBlobs.GetBlockBlobReference(backupFileName);
            if (backupPackageBlob.Exists())
            {
                Log.Info("Skipped {0} {1}: backup already exists", PackageId, PackageVersion);
                return;
            }

            var packageFileBlob = Util.GetPackageFileBlob(
                packageBlobs,
                PackageId,
                PackageVersion);
            var packageFileName = Util.GetPackageFileName(
                PackageId,
                PackageVersion);
            var downloadedPackageFilePath = Path.Combine(Util.GetTempFolder(), packageFileName);

            Log.Trace("Downloading package file '{0}' to temporary file '{1}'.", packageFileName, downloadedPackageFilePath);
            if (!WhatIf)
            {
                packageFileBlob.DownloadToFile(downloadedPackageFilePath);
            }

            Log.Trace("Uploading package file backup '{0}' from temporary file '{1}'.", backupFileName, downloadedPackageFilePath);
            if (!WhatIf)
            {
                backupPackageBlob.UploadFile(downloadedPackageFilePath);
                backupPackageBlob.Properties.ContentType = "application/zip";
                backupPackageBlob.SetProperties();
            }

            Log.Trace("Deleting temporary file '{0}'.", downloadedPackageFilePath);
            if (!WhatIf)
            {
                File.Delete(downloadedPackageFilePath);
            }
            Log.Info("Backed Up {0} {1}", PackageId, PackageVersion);
        }