protected override void ProcessRecord()
{
string rawJson = string.Empty;
ProgressRecord progress = new ProgressRecord(1, "Start Experiment", "Experiment Name:");
progress.CurrentOperation = "Getting experiment graph...";
progress.PercentComplete = 1;
WriteProgress(progress);
Experiment exp = Sdk.GetExperimentById(GetWorkspaceSetting(), ExperimentId, out rawJson);
progress.StatusDescription = "Experiment Name: " + exp.Description;
progress.CurrentOperation = "Saving experiment...";
progress.PercentComplete = 2;
WriteProgress(progress);
Sdk.SaveExperiment(GetWorkspaceSetting(), exp, rawJson);
progress.CurrentOperation = "Submitting experiment to run...";
progress.PercentComplete = 3;
WriteProgress(progress);
Sdk.RunExperiment(GetWorkspaceSetting(), exp, rawJson);
progress.CurrentOperation = "Getting experiment status...";
progress.PercentComplete = 4;
WriteProgress(progress);
exp = Sdk.GetExperimentById(GetWorkspaceSetting(), ExperimentId, out rawJson);
int percentage = 5;
while (exp.Status.StatusCode != "Finished" && exp.Status.StatusCode != "Failed")
{
exp = Sdk.GetExperimentById(GetWorkspaceSetting(), ExperimentId, out rawJson);
progress.CurrentOperation = "Experiment Status: " + exp.Status.StatusCode;
percentage++;
// reset the percentage count if it reaches 100 and execution is still in progress.
if (percentage > 100) percentage = 1;
progress.PercentComplete = percentage;
WriteProgress(progress);
}
progress.PercentComplete = 100;
WriteProgress(progress);
WriteObject(string.Format("Experiment \"{0}\" status: ", exp.Description) + exp.Status.StatusCode);
}
}