/// <summary> /// Checks if this instance has an id for the given provider. /// </summary> /// <param name="instance">The instance.</param> /// <param name="name">The of the provider name.</param> /// <returns><c>true</c> if a provider id with the given name was found; otherwise <c>false</c>.</returns> public static bool HasProviderId(this IHasProviderIds instance, string name) { if (instance == null) { throw new ArgumentNullException(nameof(instance)); } return(instance.TryGetProviderId(name, out _)); }
/// <summary> /// Gets a provider id. /// </summary> /// <param name="instance">The instance.</param> /// <param name="name">The name.</param> /// <returns>System.String.</returns> public static string?GetProviderId(this IHasProviderIds instance, string name) { instance.TryGetProviderId(name, out string?id); return(id); }
/// <summary> /// Gets a provider id. /// </summary> /// <param name="instance">The instance.</param> /// <param name="provider">The provider.</param> /// <param name="id">The provider id.</param> /// <returns><c>true</c> if a provider id with the given name was found; otherwise <c>false</c>.</returns> public static bool TryGetProviderId(this IHasProviderIds instance, MetadataProvider provider, [NotNullWhen(true)] out string?id) { return(instance.TryGetProviderId(provider.ToString(), out id)); }
private static ArtworkDto?GetMatch(Type itemType, IHasProviderIds providerIds, IReadOnlyList <ArtworkDto> artworkDtos) { foreach (var artworkDto in artworkDtos) { if (artworkDto.Providers == null) { // No providers, skip. // TODO match on name continue; } if (providerIds.TryGetProviderId("AniList", out var providerId) && string.Equals(providerId, artworkDto.Providers.Anilist, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (providerIds.TryGetProviderId(MetadataProvider.Imdb, out providerId) && string.Equals(providerId, artworkDto.Providers.Imdb, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (providerIds.TryGetProviderId(MetadataProvider.Tmdb, out providerId) && string.Equals(providerId, artworkDto.Providers.Tmdb, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (providerIds.TryGetProviderId(MetadataProvider.Tvdb, out providerId) && string.Equals(providerId, artworkDto.Providers.Tvdb, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if ((itemType == typeof(Audio) || itemType == typeof(MusicAlbum)) && providerIds.TryGetProviderId(MetadataProvider.MusicBrainzReleaseGroup, out providerId) && string.Equals(providerId, artworkDto.Providers.Musicbrainz, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (itemType == typeof(Audio) && providerIds.TryGetProviderId(MetadataProvider.MusicBrainzAlbumArtist, out providerId) && string.Equals(providerId, artworkDto.Providers.Musicbrainz, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if ((itemType == typeof(MusicAlbum) || itemType == typeof(Audio)) && providerIds.TryGetProviderId(MetadataProvider.MusicBrainzAlbum, out providerId) && string.Equals(providerId, artworkDto.Providers.Musicbrainz, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (itemType == typeof(MusicArtist) && providerIds.TryGetProviderId(MetadataProvider.MusicBrainzArtist, out providerId) && string.Equals(providerId, artworkDto.Providers.Musicbrainz, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } if (itemType == typeof(Audio) && providerIds.TryGetProviderId(MetadataProvider.MusicBrainzTrack, out providerId) && string.Equals(providerId, artworkDto.Providers.Musicbrainz, StringComparison.OrdinalIgnoreCase)) { return(artworkDto); } } return(null); }