internal static void PrepareStepParameters(WizardRunCmdletBase cmdlet, Wizard wzd)
{
foreach (Dictionary<string, object> dictParameters in cmdlet.ParametersDictionaries) {
WizardStep stepWithParameters = null;
string stepWithParametersName = string.Empty;
try {
stepWithParametersName = dictParameters["STEP"].ToString();
if ("0" == stepWithParametersName) {
//
} else {
stepWithParameters = wzd.GetStep(stepWithParametersName);
if (null == stepWithParameters) {
cmdlet.WriteError(
cmdlet,
"Failed to get a step with name '" +
stepWithParametersName +
"' in the Parameters hashtable.",
"FailedToGetStep",
ErrorCategory.InvalidArgument,
true);
}
}
try {
switch (dictParameters["ACTION"].ToString().ToUpper()) {
case "FORWARD":
stepWithParameters.StepForwardActionParameters = (object[])dictParameters["PARAMETERS"];
break;
case "BACKWARD":
stepWithParameters.StepBackwardActionParameters = (object[])dictParameters["PARAMETERS"];
break;
case "CANCEL":
stepWithParameters.StepCancelActionParameters = (object[])dictParameters["PARAMETERS"];
break;
case "STOP":
wzd.StopActionParameters = (object[])dictParameters["PARAMETERS"];
break;
case "START":
wzd.StartActionParameters = (object[])dictParameters["PARAMETERS"];
break;
default:
break;
}
} catch (Exception eParameters) {
cmdlet.WriteVerbose(
cmdlet,
"Parameters: " +
eParameters.Message);
}
} catch (Exception eParametersDictionaries) {
cmdlet.WriteError(
cmdlet,
"Failed to parse parameters for step '" +
stepWithParametersName +
"'. " +
eParametersDictionaries.Message,
"FailedToParseParameters",
ErrorCategory.InvalidArgument,
true);
}
}
}