private Task <TestResultContainer> GetNextTestToOpen_() { ScoreTask bestScoreTask = null; int bestMark = -1; lock (allEyes_) { Logger.Verbose("looking for best test in a list of {0} eyes.", allEyes_.Count); foreach (IVisualGridEyes eyes in allEyes_) { ScoreTask currentTestMark = eyes.GetBestScoreTaskForOpen(); if (currentTestMark == null) { continue; } int currentScore = currentTestMark.Score; if (bestMark < currentScore) { bestMark = currentScore; bestScoreTask = currentTestMark; } } } if (bestScoreTask == null) { lock (allEyes_) { Logger.Verbose("no relevant test found in: {0}", allEyes_.Concat(" ; ")); } return(null); } Logger.Verbose("found test with mark {0}", bestMark); Logger.Verbose("calling getNextOpenTaskAndRemove on {0}", bestScoreTask); VisualGridTask nextOpenTask = bestScoreTask.Task; Task <TestResultContainer> task = new Task <TestResultContainer>(nextOpenTask.Call, nextOpenTask); Logger.Verbose("task id: {0}", task.Id); return(task); }
private Task <TestResultContainer> GetNextCheckTask_() { ScoreTask bestScoreTask = null; int bestScore = -1; lock (allEyes_) { Logger.Verbose("looking for best test in a list of {0}", allEyes_.Count); //Logger.Verbose("locking allEyes_"); foreach (IVisualGridEyes eyes in allEyes_) { ScoreTask currentScoreTask = eyes.GetBestScoreTaskForCheck(); if (currentScoreTask == null) { continue; } int currentTestMark = currentScoreTask.Score; if (bestScore < currentTestMark) { bestScoreTask = currentScoreTask; bestScore = currentTestMark; } } } //Logger.Verbose("releasing allEyes_"); if (bestScoreTask == null) { Logger.Verbose("no test found."); return(null); } Logger.Verbose("found test with score {0}", bestScore); VisualGridTask vgTask = bestScoreTask.Task; Task <TestResultContainer> task = new Task <TestResultContainer>(vgTask.Call, vgTask); Logger.Verbose("task id: {0}", task.Id); return(task); }