private int ExecuteSecondPass(AnalyseVideo analyseVideo, ParallelLoopState loopState, int currentPass) { //pass2 (remove prefix / suffixes) if (analyseVideo.Candidates.Count == 0 || analyseVideo.MatchPercentage < Constants.GREAT_MATCH_FOUND_TRESHOLD) { string fileNameGuess = analyseVideo.GetMainFileNameGuess(); string folderNameGuess = analyseVideo.GetMainFolderNameGuess(); string fileName = Path.GetFileNameWithoutExtension(analyseVideo.Video.Files[0].Path); if (fileName != null) { List <string> fileNameGuesses = VideoTitleExtractor.GetTitleGuessesFromString(fileName.ToLower(), true); analyseVideo.AddTitleGuesses(fileNameGuesses); } var directoryName = Path.GetDirectoryName(analyseVideo.Video.Files[0].Path); if (directoryName != null) { string folderName = directoryName.Split(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar).Last().ToLower(); List <string> folderNameGuesses = VideoTitleExtractor.GetTitleGuessesFromString(folderName, true); analyseVideo.AddTitleGuesses(folderNameGuesses); } FillCandidates(analyseVideo, fileNameGuess, folderNameGuess); } analyseVideo.HandledTitleGuesses(); ExecuteAfterPass(currentPass); //if (CancellationPending) //{ // e.Cancel = true; // return; //} return(currentPass); }