diff options
| author | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2021-05-08 12:22:09 +0100 |
|---|---|---|
| committer | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2021-05-08 12:22:09 +0100 |
| commit | 7185de970c2abef0255ca1ce5321c5d841ddefb8 (patch) | |
| tree | 1f84882205d234a00057c9542c50bd1fab0cb4bf /MediaBrowser.Model/Entities/ProviderIdsExtensions.cs | |
| parent | dca02987106d0433ee4139fb380dd78d92921dae (diff) | |
| parent | d4a50be22c3c4b9bb0adfb957ee558287fd219d9 (diff) | |
Merge remote-tracking branch 'upstream/master' into UrlDecoding
Diffstat (limited to 'MediaBrowser.Model/Entities/ProviderIdsExtensions.cs')
| -rw-r--r-- | MediaBrowser.Model/Entities/ProviderIdsExtensions.cs | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs b/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs index 4aff6e3a4..ce4b0ec92 100644 --- a/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs +++ b/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs @@ -10,13 +10,40 @@ namespace MediaBrowser.Model.Entities public static class ProviderIdsExtensions { /// <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> + /// Checks if this instance has an id for the given provider. + /// </summary> + /// <param name="instance">The instance.</param> + /// <param name="provider">The provider.</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, MetadataProvider provider) + { + return instance.HasProviderId(provider.ToString()); + } + + /// <summary> /// Gets a provider id. /// </summary> /// <param name="instance">The instance.</param> /// <param name="name">The name.</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, string name, [MaybeNullWhen(false)] out string id) + public static bool TryGetProviderId(this IHasProviderIds instance, string name, [NotNullWhen(true)] out string? id) { if (instance == null) { @@ -29,7 +56,15 @@ namespace MediaBrowser.Model.Entities return false; } - return instance.ProviderIds.TryGetValue(name, out id); + var foundProviderId = instance.ProviderIds.TryGetValue(name, out id); + // This occurs when searching with Identify (and possibly in other places) + if (string.IsNullOrEmpty(id)) + { + id = null; + foundProviderId = false; + } + + return foundProviderId; } /// <summary> @@ -39,7 +74,7 @@ namespace MediaBrowser.Model.Entities /// <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, [MaybeNullWhen(false)] out string id) + public static bool TryGetProviderId(this IHasProviderIds instance, MetadataProvider provider, [NotNullWhen(true)] out string? id) { return instance.TryGetProviderId(provider.ToString(), out id); } @@ -88,10 +123,7 @@ namespace MediaBrowser.Model.Entities else { // Ensure it exists - if (instance.ProviderIds == null) - { - instance.ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - } + instance.ProviderIds ??= new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); instance.ProviderIds[name] = value; } |
