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.");
}
}