private void DoNextResearch() { if (ResearchInfos.Count == 0) { Console.WriteLine("all researches completed..."); return; } var researchInfo = ResearchInfos.Dequeue(); var rover = ConnectToRover(); rover.ResearchEnded += RoverResearchEnded; rover.Research(researchInfo); }
public void ValidateCommandsAndEnqueueResearchInfos() { while (UnprocessedCommands.Count > 0) { var command = UnprocessedCommands.Dequeue(); if (Mars == null) { throw new Exception("space station should connect to mars"); } if (Mars.Plateau == null) { var plateauMetrics = _commandParser.GetPlateauMetrics(command); Mars.Plateau = DefinePlateau(plateauMetrics [0], plateauMetrics [1]); } var researchInfos = _commandParser.GetResearchInfos(command); foreach (var info in researchInfos) { ResearchInfos.Enqueue(info); } } }