58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace MediaBrowser.Model.Entities
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Since BaseItem and DTOBaseItem both have ProviderIds, this interface helps avoid code repition using extension methods
|
|||
|
/// </summary>
|
|||
|
public interface IHasProviderIds
|
|||
|
{
|
|||
|
Dictionary<string, string> ProviderIds { get; set; }
|
|||
|
}
|
|||
|
|
|||
|
public static class IProviderIdsExtensions
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Gets a provider id
|
|||
|
/// </summary>
|
|||
|
public static string GetProviderId(this IHasProviderIds instance, MetadataProviders provider)
|
|||
|
{
|
|||
|
return instance.GetProviderId(provider.ToString());
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Gets a provider id
|
|||
|
/// </summary>
|
|||
|
public static string GetProviderId(this IHasProviderIds instance, string name)
|
|||
|
{
|
|||
|
if (instance.ProviderIds == null)
|
|||
|
{
|
|||
|
return null;
|
|||
|
}
|
|||
|
|
|||
|
return instance.ProviderIds[name];
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Sets a provider id
|
|||
|
/// </summary>
|
|||
|
public static void SetProviderId(this IHasProviderIds instance, string name, string value)
|
|||
|
{
|
|||
|
if (instance.ProviderIds == null)
|
|||
|
{
|
|||
|
instance.ProviderIds = new Dictionary<string, string>();
|
|||
|
}
|
|||
|
|
|||
|
instance.ProviderIds[name] = value;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Sets a provider id
|
|||
|
/// </summary>
|
|||
|
public static void SetProviderId(this IHasProviderIds instance, MetadataProviders provider, string value)
|
|||
|
{
|
|||
|
instance.SetProviderId(provider.ToString(), value);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|