Popcorn.Services.Movie.MovieService.DownloadPosterImageAsync C# (CSharp) Метод

DownloadPosterImageAsync() публичный Метод

Download the movie's poster image
public DownloadPosterImageAsync ( MovieFull movie, CancellationTokenSource ct ) : Task
movie Popcorn.Models.Movie.Full.MovieFull The movie to process
ct System.Threading.CancellationTokenSource Used to cancel downloading poster image
Результат Task
        public async Task DownloadPosterImageAsync(MovieFull movie, CancellationTokenSource ct)
        {

            var watch = Stopwatch.StartNew();

            var posterPath = new List<string>
            {
                movie.LargeCoverImage
            };

            try
            {
                await
                    posterPath.ForEachAsync(
                        poster =>
                            DownloadFileHelper.DownloadFileTaskAsync(poster,
                                Constants.PosterMovieDirectory + movie.ImdbCode + Constants.ImageFileExtension, ct: ct),
                        (poster, t) =>
                        {
                            if (t.Item3 == null && !string.IsNullOrEmpty(t.Item2))
                                movie.LargeCoverImage = t.Item2;
                        });
            }
            catch (Exception exception) when (exception is TaskCanceledException)
            {
                Logger.Debug(
                    "DownloadPosterImageAsync cancelled.");
            }
            catch (Exception exception)
            {
                Logger.Error(
                    $"DownloadPosterImageAsync: {exception.Message}");
                throw;
            }
            finally
            {
                watch.Stop();
                var elapsedMs = watch.ElapsedMilliseconds;
                Logger.Debug(
                    $"DownloadPosterImageAsync ({movie.ImdbCode}) in {elapsedMs} milliseconds.");
            }
        }