private bool HandleStep(string line) { string[] components = line.Split(splitChars, StringSplitOptions.RemoveEmptyEntries); if(components.Length < 3) { Debug.ReportWarning("Invalid step. Step data: {0}", line); return false; } // get the number int number; int type; if(int.TryParse(components[1], out number) == false) { Debug.ReportWarning("Invalid step number. Number field: {0}", components[1]); return false; } // validate the number if(number < 0 || number >= stepNumber) { Debug.ReportWarning("Invalid step number. Number: {0}, Max. step: {1}", number, stepNumber); return false; } if(int.TryParse(components[2], out type) == false) { Debug.ReportWarning("Invalid step Type. Type field: {0}", components[2]); return false; } switch(type) { case 0: { PatternWipeStep step = new PatternWipeStep(number); if(step.FromNative(line, splitChars) == true) { wipeSteps.Add(step); } break; } case 1: { wipeSteps.Add(new RandomWipeStep(number)); break; } case 2: { wipeSteps.Add(new RandomByteStep(number)); break; } case 3: { wipeSteps.Add(new ComplementStep(number)); break; } default: { Debug.ReportWarning("Invalid step Type. Type: {0}", type); return false; } } return true; }