From a14e919a8570cabdbb60eb7bb579a18290f1380f Mon Sep 17 00:00:00 2001 From: Thomas Gillen Date: Mon, 5 May 2014 20:53:05 +0100 Subject: Added item identity providers and converters --- .../MediaBrowser.Controller.csproj | 1 + .../Providers/IProviderManager.cs | 4 +- .../Providers/ItemIdentities.cs | 43 ++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 MediaBrowser.Controller/Providers/ItemIdentities.cs (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 6a7557e3a..6d09fe163 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -194,6 +194,7 @@ + diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 94b19498a..242a16ee9 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -54,11 +54,13 @@ namespace MediaBrowser.Controller.Providers /// /// The image providers. /// The metadata services. + /// The identity providers. + /// The identity converters. /// The metadata providers. /// The savers. /// The image savers. /// The external ids. - void AddParts(IEnumerable imageProviders, IEnumerable metadataServices, IEnumerable metadataProviders, + void AddParts(IEnumerable imageProviders, IEnumerable metadataServices, IEnumerable identityProviders, IEnumerable identityConverters, IEnumerable metadataProviders, IEnumerable savers, IEnumerable imageSavers, IEnumerable externalIds); diff --git a/MediaBrowser.Controller/Providers/ItemIdentities.cs b/MediaBrowser.Controller/Providers/ItemIdentities.cs new file mode 100644 index 000000000..93d468af0 --- /dev/null +++ b/MediaBrowser.Controller/Providers/ItemIdentities.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Providers +{ + public interface IItemIdentity + { + string Type { get; } + } + + public interface IHasIdentities + where TIdentity : IItemIdentity + { + IEnumerable Identities { get; } + + Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken); + } + + public interface IItemIdentityProvider : IHasOrder { } + + public interface IItemIdentityProvider : IItemIdentityProvider + where TLookupInfo : ItemLookupInfo + where TIdentity : IItemIdentity + { + Task FindIdentity(TLookupInfo info); + } + + public interface IItemIdentityConverter : IHasOrder { } + + public interface IItemIdentityConverter : IItemIdentityConverter + where TIdentity : IItemIdentity + { + Task Convert(TIdentity identity); + + string SourceType { get; } + + string ResultType { get; } + } +} \ No newline at end of file -- cgit v1.2.3