internal static void PrepareStepDirections(WizardRunCmdletBase cmdlet, Wizard wzd)
{
foreach (Dictionary<string, object> dictDirections in cmdlet.DirectionsDictionaries) {
WizardStep stepWithDirections = null;
string stepWithDirectionsName = string.Empty;
try {
stepWithDirectionsName = dictDirections["STEP"].ToString();
if ("0" == stepWithDirectionsName) {
//
} else {
stepWithDirections = wzd.GetStep(stepWithDirectionsName);
if (null == stepWithDirections) {
cmdlet.WriteError(
cmdlet,
"Failed to get a step with name '" +
stepWithDirectionsName +
"' in the Directions hashtable.",
"FailedToGetStep",
ErrorCategory.InvalidArgument,
true);
}
}
try {
switch (dictDirections["ACTION"].ToString().ToUpper()) {
case "FORWARD":
stepWithDirections.ToDo = WizardStepActions.Forward;
break;
case "BACKWARD":
stepWithDirections.ToDo = WizardStepActions.Backward;
break;
case "CANCEL":
stepWithDirections.ToDo = WizardStepActions.Cancel;
break;
case "STOP":
stepWithDirections.ToDo = WizardStepActions.Stop;
break;
default:
throw new Exception("Invalid value for directions");
//stepWithDirections.ToDo = WizardStepActions.Forward;
//break;
}
} catch (Exception eActionType) {
cmdlet.WriteVerbose(
cmdlet,
"The action parameter: " +
eActionType.Message);
}
} catch (Exception eDirectionsDictionaries) {
cmdlet.WriteError(
cmdlet,
"Failed to parse directions for step '" +
stepWithDirectionsName +
"'. " +
eDirectionsDictionaries.Message,
"FailedToParseDirections",
ErrorCategory.InvalidArgument,
true);
}
}
}