private TorrentMovieSource UpdateCache(TorrentMovieSource torrent) { if (torrent.State == TorrentMovieState.Complete) { _torrentRepository.Add(torrent.TorrentMovie.ImdbLink, torrent.TorrentMovie); } return torrent; }
private IObservable<TorrentMovieSource> GetMovie(TorrentMovieSource torrent, CancellationToken cancellationToken) { return Observable.FromAsync(async () => { if (torrent.State != TorrentMovieState.Incomplete) { return torrent; } var imdbData = _imdbRepository.GetById(torrent.TorrentMovie.Id) ?? await ImdbDataExtractor.ExtractData(torrent.TorrentMovie.Id, cancellationToken); _imdbRepository.Add(imdbData); var subtitles = await OpenSubtitles.GetSubtitles(torrent.TorrentMovie.Id, _subtitleLang); var movie = TorrentMovieSourceFactory.CreateCompleteTorrentMovieSource(torrent.TorrentMovie, imdbData, subtitles); return movie; }); }