mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
More Connects cleanup/fixing
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Composition;
|
||||
using NzbDrone.Core.Lifecycle;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
|
||||
@@ -12,13 +13,18 @@ namespace NzbDrone.Core.ThingiProvider
|
||||
where TProvider : IProvider
|
||||
{
|
||||
private readonly IProviderRepository<TProviderDefinition> _providerRepository;
|
||||
private readonly IContainer _container;
|
||||
private readonly Logger _logger;
|
||||
|
||||
private readonly List<TProvider> _providers;
|
||||
|
||||
protected ProviderFactory(IProviderRepository<TProviderDefinition> providerRepository, IEnumerable<TProvider> providers, Logger logger)
|
||||
protected ProviderFactory(IProviderRepository<TProviderDefinition> providerRepository,
|
||||
IEnumerable<TProvider> providers,
|
||||
IContainer container,
|
||||
Logger logger)
|
||||
{
|
||||
_providerRepository = providerRepository;
|
||||
_container = container;
|
||||
_providers = providers.ToList();
|
||||
_logger = logger;
|
||||
}
|
||||
@@ -40,8 +46,7 @@ namespace NzbDrone.Core.ThingiProvider
|
||||
|
||||
public List<TProvider> GetAvailableProviders()
|
||||
{
|
||||
return All().Where(c => c.Settings.Validate().IsValid)
|
||||
.Select(GetInstance).ToList();
|
||||
return Active().Select(GetInstance).ToList();
|
||||
}
|
||||
|
||||
public TProviderDefinition Get(int id)
|
||||
@@ -67,7 +72,9 @@ namespace NzbDrone.Core.ThingiProvider
|
||||
private TProvider GetInstance(TProviderDefinition definition)
|
||||
{
|
||||
var type = GetImplementation(definition);
|
||||
var instance = (TProvider)Activator.CreateInstance(type);
|
||||
|
||||
//TODO: This doesn't work for things that have non-parameterless constructors
|
||||
var instance = (TProvider)_container.Resolve(type);
|
||||
instance.Definition = definition;
|
||||
return instance;
|
||||
}
|
||||
@@ -90,6 +97,11 @@ namespace NzbDrone.Core.ThingiProvider
|
||||
{
|
||||
}
|
||||
|
||||
protected virtual List<TProviderDefinition> Active()
|
||||
{
|
||||
return All().Where(c => c.Settings.Validate().IsValid).ToList();
|
||||
}
|
||||
|
||||
private void RemoveMissingImplementations()
|
||||
{
|
||||
var storedProvider = _providerRepository.All();
|
||||
|
Reference in New Issue
Block a user