using System.Collections.Generic; using System.Linq; using NLog; using NzbDrone.Common.Composition; using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.ThingiProvider; namespace NzbDrone.Core.Download { public interface IDownloadClientFactory : IProviderFactory { } public class DownloadClientFactory : ProviderFactory, IDownloadClientFactory { private readonly IDownloadClientRepository _providerRepository; public DownloadClientFactory(IDownloadClientRepository providerRepository, IEnumerable providers, IContainer container, IEventAggregator eventAggregator, Logger logger) : base(providerRepository, providers, container, eventAggregator, logger) { _providerRepository = providerRepository; } protected override List Active() { return base.Active().Where(c => c.Enable).ToList(); } public override DownloadClientDefinition GetProviderCharacteristics(IDownloadClient provider, DownloadClientDefinition definition) { definition = base.GetProviderCharacteristics(provider, definition); definition.Protocol = provider.Protocol; return definition; } } }