private int ExecuteThirdPass(AnalyseVideo analyseVideo, ParallelLoopState loopState, int currentPass) { if (analyseVideo.Candidates.Count == 0 || analyseVideo.MatchPercentage < Constants.GREAT_MATCH_FOUND_TRESHOLD) { analyseVideo.AddTitleGuesses(VideoTitleExtractor.GetTitleGuessesFromPath(analyseVideo.Video.Files[0].Path)); //TODO 004 optimize this --> also gets done in pass1 --> remember somehow UniqueList <string> titleGuesses = analyseVideo.GetTitleGuesses(); string fileNameGuess = analyseVideo.GetMainFileNameGuess(); string folderNameGuess = analyseVideo.GetMainFolderNameGuess(); titleGuesses.Clear(); foreach (string searchResult in BingSearch.Search(fileNameGuess)) { analyseVideo.AddTitleGuesses(VideoTitleExtractor.CleanTitle(searchResult)); } if (folderNameGuess != null) { foreach (string searchResult in BingSearch.Search(folderNameGuess)) { analyseVideo.AddTitleGuesses(VideoTitleExtractor.CleanTitle(searchResult)); } } FillCandidates(analyseVideo, fileNameGuess, folderNameGuess); } analyseVideo.HandledTitleGuesses(); ExecuteAfterPass(currentPass); //if (CancellationPending) //{ // e.Cancel = true; // return; //} return(currentPass); }