private async Task FillMetadata(ChannelItemInfo item, List <TrailerMetadata> metadataList, CancellationToken cancellationToken) { var imdbId = item.GetProviderId(MetadataProviders.Imdb); TrailerMetadata metadata = null; if (!string.IsNullOrWhiteSpace(imdbId)) { metadata = metadataList.FirstOrDefault(i => string.Equals(imdbId, i.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase)); } if (metadata == null) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); if (!string.IsNullOrWhiteSpace(tmdbId)) { metadata = metadataList.FirstOrDefault(i => string.Equals(tmdbId, i.GetProviderId(MetadataProviders.Tmdb), StringComparison.OrdinalIgnoreCase)); } } if (metadata == null) { var searchResults = await _providerManager.GetRemoteSearchResults <Movie, MovieInfo>(new RemoteSearchQuery <MovieInfo> { IncludeDisabledProviders = true, SearchInfo = new MovieInfo { Name = item.Name, Year = item.ProductionYear, ProviderIds = item.ProviderIds } }, cancellationToken).ConfigureAwait(false); var result = searchResults.FirstOrDefault(); if (result != null) { metadata = new TrailerMetadata { Name = result.Name, PremiereDate = result.PremiereDate, ProductionYear = result.ProductionYear, ProviderIds = result.ProviderIds }; metadataList.Add(metadata); } } if (metadata != null) { item.Name = metadata.Name ?? item.Name; item.ProductionYear = metadata.ProductionYear ?? item.ProductionYear; item.PremiereDate = metadata.PremiereDate ?? item.PremiereDate; // Merge provider id's foreach (var id in metadata.ProviderIds) { item.SetProviderId(id.Key, id.Value); } } }
private async Task FillMetadata(ChannelItemInfo item, List<TrailerMetadata> metadataList, CancellationToken cancellationToken) { var imdbId = item.GetProviderId(MetadataProviders.Imdb); TrailerMetadata metadata = null; if (!string.IsNullOrWhiteSpace(imdbId)) { metadata = metadataList.FirstOrDefault(i => string.Equals(imdbId, i.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase)); } if (metadata == null) { var tmdbId = item.GetProviderId(MetadataProviders.Tmdb); if (!string.IsNullOrWhiteSpace(tmdbId)) { metadata = metadataList.FirstOrDefault(i => string.Equals(tmdbId, i.GetProviderId(MetadataProviders.Tmdb), StringComparison.OrdinalIgnoreCase)); } } if (metadata == null) { var searchResults = await _providerManager.GetRemoteSearchResults<Movie, MovieInfo>(new RemoteSearchQuery<MovieInfo> { IncludeDisabledProviders = true, SearchInfo = new MovieInfo { Name = item.Name, Year = item.ProductionYear, ProviderIds = item.ProviderIds } }, cancellationToken).ConfigureAwait(false); var result = searchResults.FirstOrDefault(); if (result != null) { metadata = new TrailerMetadata { Name = result.Name, PremiereDate = result.PremiereDate, ProductionYear = result.ProductionYear, ProviderIds = result.ProviderIds }; metadataList.Add(metadata); } } if (metadata != null) { item.Name = metadata.Name ?? item.Name; item.ProductionYear = metadata.ProductionYear ?? item.ProductionYear; item.PremiereDate = metadata.PremiereDate ?? item.PremiereDate; // Merge provider id's foreach (var id in metadata.ProviderIds) { item.SetProviderId(id.Key, id.Value); } } }