protected override void ProcessRecord()
{
ProgressRecord pr = new ProgressRecord(1, "Create Workspace", WorkspaceName);
pr.PercentComplete = 1;
pr.CurrentOperation = "Creating...";
WriteProgress(pr);
Task<string> createWS = Sdk.CreateWorkspace(ManagementCertThumbprint, AzureSubscriptionId, WorkspaceName, Location, StorageAccountName, StorageAccountKey, OwnerEmail, "PowerShell");
while (!createWS.IsCompleted)
{
if (pr.PercentComplete < 100)
pr.PercentComplete++;
else
pr.PercentComplete = 1;
WriteProgress(pr);
Thread.Sleep(500);
}
pr.StatusDescription = string.Format("Getting status for Workspace\"{0}\"", WorkspaceName);
pr.CurrentOperation = "Getting status...";
WriteProgress(pr);
string wsId = createWS.Result;
WorkspaceRdfe ws = Sdk.GetCreateWorkspaceStatus(ManagementCertThumbprint, AzureSubscriptionId, wsId, Location);
pr.CurrentOperation = "Status: " + ws.WorkspaceState;
WriteProgress(pr);
while (ws.WorkspaceState != "Enabled")
{
pr.CurrentOperation = "Status: " + ws.WorkspaceState;
WriteProgress(pr);
if (pr.PercentComplete < 100)
pr.PercentComplete++;
else
pr.PercentComplete = 1;
Thread.Sleep(500);
ws = Sdk.GetCreateWorkspaceStatus(ManagementCertThumbprint, AzureSubscriptionId, wsId, Location);
}
pr.PercentComplete = 100;
WriteProgress(pr);
WriteObject(ws);
}
}