Source/NuGetGallery.Operations/Tasks/DeletePackageFileTask.cs (47 lines of code) (raw):
using NuGetGallery.Operations.Common;
namespace NuGetGallery.Operations
{
[Command("deletepackagefile", "Deletes a specific package file", AltName = "dpf")]
public class DeletePackageFileTask : PackageVersionTask
{
public override void ExecuteCommand()
{
new BackupPackageFileTask
{
StorageAccount = StorageAccount,
PackageId = PackageId,
PackageVersion = PackageVersion,
PackageHash = PackageHash,
WhatIf = WhatIf
}.ExecuteCommand();
var blobClient = CreateBlobClient();
var packagesBlobContainer = Util.GetPackagesBlobContainer(blobClient);
var packageFileBlob = Util.GetPackageFileBlob(
packagesBlobContainer,
PackageId,
PackageVersion);
var fileName = Util.GetPackageFileName(
PackageId,
PackageVersion);
if (packageFileBlob.Exists())
{
Log.Info("Deleting package file '{0}'.", fileName);
if (!WhatIf)
{
packageFileBlob.DeleteIfExists();
}
}
else
{
Log.Warn("Package file does not exist '{0}'.", fileName);
}
}
public override void ValidateArguments()
{
base.ValidateArguments();
ArgCheck.Required(PackageId, "PackageId");
ArgCheck.Required(PackageVersion, "PackageVersion");
ArgCheck.Required(PackageHash, "PackageHash");
}
}
}