示例#1
0
        public async Task DownloadSubtitle(string filePath)
        {
            var downloadable = await _engine.GetDownloadable(filePath);

            if (downloadable != null)
            {
                var downloaded = false;

                var movie = downloadable as Movie;
                if (movie != null)
                {
                    downloaded = await _engine.DownloadSubtitleForMovie(movie);
                }
                else
                {
                    var episode = downloadable as TvShowEpisode;
                    if (episode != null)
                    {
                        downloaded = await _engine.DownloadSubtitleForTvShowEpisode(episode);
                    }
                }

                if (!downloaded)
                {
                    await Helper.ManualSubtitleDownload(_engine, _exceptionHandler, _dialogService, downloadable);

                    if (downloadable.Media.IsModified)
                    {
                        await _engine.UpdateEntity(downloadable.Media);
                    }
                }
            }
            else
            {
                var downloaded = await _engine.DownloadSubtitle(filePath);

                if (downloaded)
                {
                    return;
                }

                var fileInfo = new FileInfo(filePath);
                if (fileInfo.Exists)
                {
                    await Helper.ManualSubtitleDownload(_engine, _exceptionHandler, _dialogService, fileInfo);
                }
            }
        }