/// <summary> /// Adds a step to the workplan /// </summary> /// <param name="workplan">The workplan.</param> /// <param name="task">The task to add.</param> /// <param name="parameter">The parameter for the task.</param> /// <param name="input">The input for the step</param> /// <param name="outputs">The outputs of the steps.</param> /// <returns></returns> public static TaskStep <TActivity, TParam> AddStep <TActivity, TParam>(this Workplan workplan, TaskStep <TActivity, TParam> task, TParam parameter, IConnector[] input, params IConnector[] outputs) where TActivity : Activity <TParam>, new() where TParam : IParameters, new() { task.Parameters = parameter; for (var i = 0; i < input.Length; i++) { task.Inputs[i] = input[i]; } for (var i = 0; i < outputs.Length; i++) { task.Outputs[i] = outputs[i]; } workplan.Add(task); return(task); }
/// <summary> /// Adds a step to the workplan /// </summary> /// <param name="workplan">The workplan.</param> /// <param name="task">The task to add.</param> /// <param name="parameter">The parameter for the task.</param> /// <param name="input">The input for the step</param> /// <param name="outputs">The outputs of the steps.</param> /// <returns></returns> public static TaskStep <TActivity, TProcParam, TParam> AddStep <TActivity, TProcParam, TParam>(this Workplan workplan, TaskStep <TActivity, TProcParam, TParam> task, TParam parameter, IConnector input, params IConnector[] outputs) where TActivity : IActivity <TProcParam>, new() where TProcParam : IParameters where TParam : TProcParam, new() { task.Parameters = parameter; task.Inputs[0] = input; for (var i = 0; i < outputs.Length; i++) { task.Outputs[i] = outputs[i]; } if (task.Outputs.Length != outputs.Length) { throw new ArgumentException($"Wrong number of outputs for the task {task.Name}"); } workplan.Add(task); return(task); }