using System.Collections.Generic; using FluentValidation.Results; namespace NzbDrone.Core.ThingiProvider { public interface IProviderFactory where TProviderDefinition : ProviderDefinition, new() where TProvider : IProvider { List All(); List GetAvailableProviders(); TProviderDefinition Get(int id); TProviderDefinition Create(TProviderDefinition definition); void Update(TProviderDefinition definition); void Delete(int id); IEnumerable GetDefaultDefinitions(); IEnumerable GetPresetDefinitions(TProviderDefinition providerDefinition); TProviderDefinition GetProviderCharacteristics(TProvider provider, TProviderDefinition definition); TProvider GetInstance(TProviderDefinition definition); ValidationResult Test(TProviderDefinition definition); } }