IndexerProvider now uses PetaPoco.

This commit is contained in:
Mark McDowall 2011-06-17 17:10:33 -07:00
parent ec0ef5d46d
commit 01944acbb1
4 changed files with 21 additions and 12 deletions

View File

@ -29,7 +29,7 @@ namespace NzbDrone.Core.Test
{
var mocker = new AutoMoqer();
mocker.SetConstant(MockLib.GetEmptyRepository());
mocker.SetConstant(MockLib.GetEmptyDatabase());
//Act
var indexerProvider = mocker.Resolve<IndexerProvider>();
@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test
{
var mocker = new AutoMoqer();
mocker.SetConstant(MockLib.GetEmptyRepository());
mocker.SetConstant(MockLib.GetEmptyDatabase());
//Act
var indexerProvider = mocker.Resolve<IndexerProvider>();

View File

@ -142,6 +142,14 @@ namespace NzbDrone.Core.Datastore.Migrations
new Column("Cutoff", DbType.Int32, ColumnProperty.NotNull),
new Column("SonicAllowed", DbType.String, ColumnProperty.NotNull),
});
Database.AddTable("IndexerSettings", "SQLite", new[]
{
new Column("Id", DbType.Int32, ColumnProperty.PrimaryKey),
new Column("Enable", DbType.Boolean, ColumnProperty.NotNull),
new Column("IndexProviderType", DbType.String, ColumnProperty.NotNull),
new Column("Name", DbType.String, ColumnProperty.NotNull),
});
}
public override void Down()

View File

@ -5,21 +5,21 @@ using Ninject;
using NLog;
using NzbDrone.Core.Providers.Indexer;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
using PetaPoco;
namespace NzbDrone.Core.Providers
{
public class IndexerProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly IRepository _repository;
private readonly IDatabase _database;
private IList<IndexerBase> _indexers = new List<IndexerBase>();
[Inject]
public IndexerProvider(IRepository repository)
public IndexerProvider(IDatabase database)
{
_repository = repository;
_database = database;
}
public IndexerProvider()
@ -35,7 +35,7 @@ namespace NzbDrone.Core.Providers
public virtual List<IndexerSetting> GetAllISettings()
{
return _repository.All<IndexerSetting>().ToList();
return _database.Fetch<IndexerSetting>();
}
public virtual void SaveSettings(IndexerSetting settings)
@ -43,18 +43,18 @@ namespace NzbDrone.Core.Providers
if (settings.Id == 0)
{
Logger.Debug("Adding Indexer settings for {0}", settings.Name);
_repository.Add(settings);
_database.Insert(settings);
}
else
{
Logger.Debug("Updating Indexer settings for {0}", settings.Name);
_repository.Update(settings);
_database.Update(settings);
}
}
public virtual IndexerSetting GetSettings(Type type)
{
return _repository.Single<IndexerSetting>(s => s.IndexProviderType == type.ToString());
return _database.Single<IndexerSetting>("WHERE IndexProviderType = @0", type.ToString());
}
public virtual void InitializeIndexers(IList<IndexerBase> indexers)

View File

@ -1,11 +1,12 @@
using System;
using SubSonic.SqlGeneration.Schema;
using PetaPoco;
namespace NzbDrone.Core.Repository
{
[TableName("IndexerSettings")]
[PrimaryKey("Id", autoIncrement = true)]
public class IndexerSetting
{
[SubSonicPrimaryKey(true)]
public int Id { get; set; }
public Boolean Enable { get; set; }