diff --git a/src/NzbDrone.Core/Datastore/BasicRepository.cs b/src/NzbDrone.Core/Datastore/BasicRepository.cs index 8e1b92b77..dc76a5a31 100644 --- a/src/NzbDrone.Core/Datastore/BasicRepository.cs +++ b/src/NzbDrone.Core/Datastore/BasicRepository.cs @@ -16,6 +16,7 @@ namespace NzbDrone.Core.Datastore { IEnumerable All(); int Count(); + TModel Find(int id); TModel Get(int id); TModel Insert(TModel model); TModel Update(TModel model); @@ -87,10 +88,17 @@ namespace NzbDrone.Core.Datastore return Query(Builder()); } - public TModel Get(int id) + public TModel Find(int id) { var model = Query(x => x.Id == id).FirstOrDefault(); + return model; + } + + public TModel Get(int id) + { + var model = Find(id); + if (model == null) { throw new ModelNotFoundException(typeof(TModel), id); diff --git a/src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs b/src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs index 73b6d5e67..303a03d55 100644 --- a/src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs +++ b/src/NzbDrone.Core/ThingiProvider/IProviderFactory.cs @@ -9,6 +9,8 @@ namespace NzbDrone.Core.ThingiProvider { List All(); List GetAvailableProviders(); + bool Exists(int id); + TProviderDefinition Find(int id); TProviderDefinition Get(int id); TProviderDefinition Create(TProviderDefinition definition); void Update(TProviderDefinition definition); diff --git a/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs b/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs index c23d9fed5..4bb3da6b7 100644 --- a/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs +++ b/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs @@ -91,11 +91,21 @@ namespace NzbDrone.Core.ThingiProvider return Active().Select(GetInstance).ToList(); } + public bool Exists(int id) + { + return _providerRepository.Find(id) != null; + } + public virtual TProviderDefinition Get(int id) { return _providerRepository.Get(id); } + public TProviderDefinition Find(int id) + { + return _providerRepository.Find(id); + } + public virtual TProviderDefinition Create(TProviderDefinition definition) { var result = _providerRepository.Insert(definition);