/// <summary> /// Fetches the images. /// </summary> /// <param name="series">The series.</param> /// <param name="images">The images.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Series series, XmlDocument images, CancellationToken cancellationToken) { if (!series.HasImage(ImageType.Primary)) { var n = images.SelectSingleNode("//Banner[BannerType='poster']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { var path = await _providerManager.DownloadAndSaveImage(series, TVUtils.BannerUrl + n.InnerText, "folder" + Path.GetExtension(n.InnerText), ConfigurationManager.Configuration.SaveLocalMeta, RemoteSeriesProvider.Current.TvDbResourcePool, cancellationToken).ConfigureAwait(false); series.SetImage(ImageType.Primary, path); } } } if (ConfigurationManager.Configuration.DownloadSeriesImages.Banner && !series.HasImage(ImageType.Banner)) { var n = images.SelectSingleNode("//Banner[BannerType='series']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { var bannerImagePath = await _providerManager.DownloadAndSaveImage(series, TVUtils.BannerUrl + n.InnerText, "banner" + Path.GetExtension(n.InnerText), ConfigurationManager.Configuration.SaveLocalMeta, RemoteSeriesProvider.Current.TvDbResourcePool, cancellationToken); series.SetImage(ImageType.Banner, bannerImagePath); } } } if (series.BackdropImagePaths.Count == 0) { var bdNo = series.BackdropImagePaths.Count; var xmlNodeList = images.SelectNodes("//Banner[BannerType='fanart']"); if (xmlNodeList != null) { foreach (XmlNode b in xmlNodeList) { var p = b.SelectSingleNode("./BannerPath"); if (p != null) { var bdName = "backdrop" + (bdNo > 0 ? bdNo.ToString(UsCulture) : ""); series.BackdropImagePaths.Add(await _providerManager.DownloadAndSaveImage(series, TVUtils.BannerUrl + p.InnerText, bdName + Path.GetExtension(p.InnerText), ConfigurationManager.Configuration.SaveLocalMeta, RemoteSeriesProvider.Current.TvDbResourcePool, cancellationToken).ConfigureAwait(false)); bdNo++; } if (series.BackdropImagePaths.Count >= ConfigurationManager.Configuration.MaxBackdrops) break; } } } }