public async Task <IEnumerable <RemoteImageInfo> > GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken) { var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders); if (!string.IsNullOrEmpty(query.ProviderName)) { var providerName = query.ProviderName; providers = providers.Where(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase)); } var preferredLanguage = item.GetPreferredMetadataLanguage(); var language = query.IncludeAllLanguages ? null : preferredLanguage; var tasks = providers.Select(i => GetImages(item, cancellationToken, i, language, query.ImageType)); var results = await Task.WhenAll(tasks).ConfigureAwait(false); var images = results.SelectMany(i => i); return(images); }
/// <inheritdoc/> public async Task <IEnumerable <RemoteImageInfo> > GetAvailableRemoteImages(BaseItem item, RemoteImageQuery query, CancellationToken cancellationToken) { var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders); if (!string.IsNullOrEmpty(query.ProviderName)) { var providerName = query.ProviderName; providers = providers.Where(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase)); } var preferredLanguage = item.GetPreferredMetadataLanguage(); var languages = new List <string>(); if (!query.IncludeAllLanguages && !string.IsNullOrWhiteSpace(preferredLanguage)) { languages.Add(preferredLanguage); } // TODO include [query.IncludeAllLanguages] as an argument to the providers var tasks = providers.Select(i => GetImages(item, i, languages, cancellationToken, query.ImageType)); var results = await Task.WhenAll(tasks).ConfigureAwait(false); return(results.SelectMany(i => i.ToList())); }