public CreateTask ( |
||
parameters | The parameters to use when creating the task. | |
return | void |
public void CreateTask(NewTaskParameters parameters)
{
if (parameters == null)
{
throw new ArgumentNullException("parameters");
}
CloudTask task = new CloudTask(parameters.TaskId, parameters.CommandLine);
task.DisplayName = parameters.DisplayName;
task.RunElevated = parameters.RunElevated;
if (parameters.EnvironmentSettings != null)
{
task.EnvironmentSettings = new List<EnvironmentSetting>();
foreach (DictionaryEntry d in parameters.EnvironmentSettings)
{
EnvironmentSetting setting = new EnvironmentSetting(d.Key.ToString(), d.Value.ToString());
task.EnvironmentSettings.Add(setting);
}
}
if (parameters.ResourceFiles != null)
{
task.ResourceFiles = new List<ResourceFile>();
foreach (DictionaryEntry d in parameters.ResourceFiles)
{
ResourceFile file = new ResourceFile(d.Value.ToString(), d.Key.ToString());
task.ResourceFiles.Add(file);
}
}
if (parameters.AffinityInformation != null)
{
task.AffinityInformation = parameters.AffinityInformation.omObject;
}
if (parameters.Constraints != null)
{
task.Constraints = parameters.Constraints.omObject;
}
if (parameters.DependsOn != null)
{
task.DependsOn = parameters.DependsOn;
}
if (parameters.MultiInstanceSettings != null)
{
Utils.Utils.MultiInstanceSettingsSyncCollections(parameters.MultiInstanceSettings);
task.MultiInstanceSettings = parameters.MultiInstanceSettings.omObject;
}
if (parameters.ApplicationPackageReferences != null)
{
task.ApplicationPackageReferences = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.omObject);
}
if (parameters.ExitConditions != null)
{
Utils.Utils.ExitConditionsSyncCollections(parameters.ExitConditions);
task.ExitConditions = parameters.ExitConditions.omObject;
}
WriteVerbose(string.Format(Resources.CreatingTask, parameters.TaskId));
if (parameters.Job != null)
{
parameters.Job.omObject.AddTask(task, parameters.AdditionalBehaviors);
}
else
{
JobOperations jobOperations = parameters.Context.BatchOMClient.JobOperations;
jobOperations.AddTask(parameters.JobId, task, parameters.AdditionalBehaviors);
}
}
/// <summary> /// Creates a test task for use in Scenario tests. /// </summary> public static void CreateTestTask(BatchController controller, BatchAccountContext context, string jobId, string taskId, string cmdLine = "cmd /c dir /s") { BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); NewTaskParameters parameters = new NewTaskParameters(context, jobId, null, taskId) { CommandLine = cmdLine, RunElevated = true }; client.CreateTask(parameters); }