public override void ExecuteCmdlet()
{
Func<long, Task> taskGenerator = null;
IStorageBlobManagement localChannel = Channel;
string action = "Remove blob";
if (deleteSnapshot)
{
action = "Remove snapshots of blob";
}
else if (force)
{
action = "Remove blob and snapshots";
}
string blobName = BlobName;
if (ParameterSetName == BlobPipelineParameterSet)
{
blobName = CloudBlob.Name;
}
if (ShouldProcess(blobName, action))
{
switch (ParameterSetName)
{
case BlobPipelineParameterSet:
CloudBlob localBlob = CloudBlob;
taskGenerator = (taskId) => RemoveAzureBlob(taskId, localChannel, localBlob, false);
break;
case ContainerPipelineParameterSet:
CloudBlobContainer localContainer = CloudBlobContainer;
string localName = BlobName;
taskGenerator = (taskId) => RemoveAzureBlob(taskId, localChannel, localContainer, localName);
break;
case NameParameterSet:
default:
string localContainerName = ContainerName;
string localBlobName = BlobName;
taskGenerator = (taskId) => RemoveAzureBlob(taskId, localChannel, localContainerName, localBlobName);
break;
}
RunTask(taskGenerator);
}
}
}