protected override void InternalRunWorker(object arg) { _log.Info("Processing: " + arg); TmdbResult newData = null; try { var name = _guessit.RealGuessName(Path.GetFileName(arg.ToString())); if (name?.ImdbId != null) { newData = _tmdb.GetByImdbId(name.ImdbId); } else if (name?.Title != null) { newData = _tmdb.GetByTmdbId(_tmdb.SearchMovies(name.Title, name.Year).First()); } } catch (Exception e) { _log.Error(e, "Process error: " + arg); } newData = newData ?? _tmdb.GetByFilename(Path.GetFileName(arg.ToString())); var result = new MovieEntryFacade(newData, arg.ToString()); _log.Info("Processed: " + arg); IncrementWorkDone(); OnProgressChanged(this, new ProgressChangedEventArgs(GetPercentage(), new DirectoryAnalyzeWorkerState { Entry = result })); }
protected override void InternalRunWorker(object arg) { _log.Debug("Task started."); OnRunWorkerStarted(this, EventArgs.Empty); try { OnProgressChanged(this, new ProgressChangedEventArgs(-1, null)); var name = _guessit.RealGuessName(Path.GetFileName(FullPath)); var found = _tmdb.SearchMovies(name.Title, 0); var movieTitles = found.Select(movieId => _tmdb.GetByTmdbId(movieId)) .ToDictionary(result => result.Id.ToString()); var movieTitleSelection = movieTitles.Values.Select(x => $"{x.Id}: {x.Title} ({x.Year})").ToArray(); var choose = View.ShowComboBoxInput("Select alternative.", movieTitleSelection, out string choosenName); if (choose != DialogResult.OK) { goto finish; } foreach (var movieTitle in movieTitles) { if (movieTitle.Value.Id.ToString() == choosenName.Split(':')[0]) { OnProgressChanged(this, new ProgressChangedEventArgs(-1, new ResearchMovieWorkerState { Entry = new MovieEntryFacade(movieTitle.Value, FullPath), Index = Index })); } } finish: _log.Debug("Task finished."); OnRunWorkerCompleted(this, new RunWorkerCompletedEventArgs(null, null, false)); } catch (Exception e) { _log.Error(e, "Task finished with error."); OnRunWorkerCompleted(this, new RunWorkerCompletedEventArgs(null, e, true)); } }