public override void Run(ProcessModel processModel) { bool isValidate = false; _processModel = processModel; while (!isValidate) { Console.Write(string.Format(ConsoleSentences, processModel.RoverIndex)); EnterValue = Console.ReadLine().TrimStart().TrimEnd(); isValidate = Validate(); if (isValidate) { RoverLocationModel location = new RoverLocationModel() { Apsis = Convert.ToInt32(_apsisValue), Ordinate = Convert.ToInt32(_ordinateValue), Orientation = _orientationValue, MaxApsisLimit = processModel.PlateauModel.Apsis, MaxOrdinateLimit = processModel.PlateauModel.Ordinate }; processModel.CurrentRover = new RoverModel(); processModel.CurrentRover.Location = location; if (NextProcess != null) { NextProcess.Run(processModel); } } } }
public override void Run(ProcessModel processModel) { bool isValidate = false; while (!isValidate) { Console.Write(ConsoleSentences); EnterValue = Console.ReadLine().TrimStart().TrimEnd().ToUpper(); isValidate = Validate(); if (isValidate) { processModel.RoverModels.Enqueue(processModel.CurrentRover); processModel.CurrentRover = null; if (EnterValue == "Y") { processModel.RoverIndex += 1; RoverLocationProcess roverLocationProcess = new RoverLocationProcess(); RoverMovementProcess roverMovementProcess = new RoverMovementProcess(); RoverAddNewProcess addNewProcess = new RoverAddNewProcess(); SetNextProcess(roverLocationProcess); roverLocationProcess.SetNextProcess(roverMovementProcess); roverMovementProcess.SetNextProcess(addNewProcess); NextProcess.Run(processModel); } } } }
public override void Run(ProcessModel processModel) { bool isValidate; do { Console.Write(ConsoleSentences); EnterValue = Console.ReadLine().TrimStart().TrimEnd(); isValidate = Validate(); if (isValidate) { processModel.PlateauModel = new PlateauModel() { Apsis = Convert.ToInt32(EnterValue.Split(" ")[0]), Ordinate = Convert.ToInt32(EnterValue.Split(" ")[1]), }; processModel.RoverModels = new Queue <RoverModel>(); processModel.RoverIndex = 1; if (NextProcess != null) { NextProcess.Run(processModel); } } } while (!isValidate); }
public override void Run(ProcessModel processModel) { bool isValidate = false; while (!isValidate) { Console.Write(string.Format(ConsoleSentences, processModel.RoverIndex)); EnterValue = Console.ReadLine().TrimStart().TrimEnd().ToUpper(); isValidate = Validate(); if (isValidate) { RoverMovementModel movement = new RoverMovementModel() { MovementLetters = EnterValue, }; processModel.CurrentRover.Movement = movement; if (NextProcess != null) { NextProcess.Run(processModel); } } } }