aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager')
-rw-r--r--MediaBrowser.Providers/Manager/ConcreteMetadataService.cs20
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs6
2 files changed, 24 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Manager/ConcreteMetadataService.cs b/MediaBrowser.Providers/Manager/ConcreteMetadataService.cs
new file mode 100644
index 000000000..3a4bc06ca
--- /dev/null
+++ b/MediaBrowser.Providers/Manager/ConcreteMetadataService.cs
@@ -0,0 +1,20 @@
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Logging;
+
+namespace MediaBrowser.Providers.Manager
+{
+ public abstract class ConcreteMetadataService<TItemType> : MetadataService<TItemType>
+ where TItemType : IHasMetadata, new()
+ {
+ protected ConcreteMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo)
+ : base(serverConfigurationManager, logger, providerManager, providerRepo)
+ {
+ }
+
+ protected override TItemType CreateNew()
+ {
+ return new TItemType();
+ }
+ }
+}
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index e8b3a6ad6..d946f9cbd 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -14,7 +14,7 @@ using System.Threading.Tasks;
namespace MediaBrowser.Providers.Manager
{
public abstract class MetadataService<TItemType> : IMetadataService
- where TItemType : IHasMetadata, new()
+ where TItemType : IHasMetadata
{
protected readonly IServerConfigurationManager ServerConfigurationManager;
protected readonly ILogger Logger;
@@ -263,7 +263,7 @@ namespace MediaBrowser.Providers.Manager
Providers = providers.Select(i => i.GetType().FullName.GetMD5()).ToList()
};
- var temp = new TItemType();
+ var temp = CreateNew();
// If replacing all metadata, run internet providers first
if (options.ReplaceAllMetadata)
@@ -317,6 +317,8 @@ namespace MediaBrowser.Providers.Manager
return refreshResult;
}
+ protected abstract TItemType CreateNew();
+
private async Task ExecuteRemoteProviders(TItemType item, TItemType temp, IEnumerable<IRemoteMetadataProvider<TItemType>> providers, RefreshResult refreshResult, CancellationToken cancellationToken)
{
var id = GetId(item);