From 9daf1ccfc0dcb25a6f88dc01079e0595eeb5589e Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Fri, 17 Jun 2011 12:50:49 -0700 Subject: [PATCH] JobProvider moved to PetaPoco. --- NzbDrone.Core.Test/JobProviderTest.cs | 30 +++++++++---------- .../Datastore/Migrations/Migration.cs | 19 +++++++++--- NzbDrone.Core/Providers/Jobs/JobProvider.cs | 13 ++++---- NzbDrone.Core/Repository/JobSetting.cs | 3 ++ 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/NzbDrone.Core.Test/JobProviderTest.cs b/NzbDrone.Core.Test/JobProviderTest.cs index 89de02568..f7ce7b08a 100644 --- a/NzbDrone.Core.Test/JobProviderTest.cs +++ b/NzbDrone.Core.Test/JobProviderTest.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); //Act @@ -43,7 +43,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new BrokenJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); //Act @@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -88,7 +88,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -110,7 +110,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new SlowJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -133,7 +133,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new BrokenJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -156,7 +156,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new SlowJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -190,7 +190,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { slowJob }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -218,7 +218,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { fakeTimer }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); var timerProvider = mocker.Resolve(); @@ -242,7 +242,7 @@ namespace NzbDrone.Core.Test [Test] public void Init_Timers_only_registers_once() { - var repo = MockLib.GetEmptyRepository(); + var repo = MockLib.GetEmptyDatabase(); for (int i = 0; i < 2; i++) { @@ -273,7 +273,7 @@ namespace NzbDrone.Core.Test [Test] public void Init_Timers_sets_interval_0_to_disabled() { - var repo = MockLib.GetEmptyRepository(); + var repo = MockLib.GetEmptyDatabase(); for (int i = 0; i < 2; i++) { @@ -307,7 +307,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); //Act @@ -325,7 +325,7 @@ namespace NzbDrone.Core.Test [Test] public void Disabled_isnt_run_by_scheduler() { - var repo = MockLib.GetEmptyRepository(); + var repo = MockLib.GetEmptyDatabase(); var disabledJob = new DisabledJob(); @@ -353,7 +353,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); //Act @@ -374,7 +374,7 @@ namespace NzbDrone.Core.Test IList fakeJobs = new List { new FakeJob() }; var mocker = new AutoMoqer(); - mocker.SetConstant(MockLib.GetEmptyRepository()); + mocker.SetConstant(MockLib.GetEmptyDatabase()); mocker.SetConstant(fakeJobs); //Act diff --git a/NzbDrone.Core/Datastore/Migrations/Migration.cs b/NzbDrone.Core/Datastore/Migrations/Migration.cs index 4fbbe431b..e49124513 100644 --- a/NzbDrone.Core/Datastore/Migrations/Migration.cs +++ b/NzbDrone.Core/Datastore/Migrations/Migration.cs @@ -52,7 +52,7 @@ namespace NzbDrone.Core.Datastore.Migrations new Column("QualityProfileId", DbType.Int16, ColumnProperty.NotNull), new Column("SeasonFolder", DbType.Boolean, ColumnProperty.NotNull), new Column("LastInfoSync", DbType.DateTime, ColumnProperty.Null), - new Column("LastDiskSync", DbType.DateTime, ColumnProperty.Null), + new Column("LastDiskSync", DbType.DateTime, ColumnProperty.Null) }); Database.AddTable("Episodes", "SQLite", new[] @@ -67,7 +67,7 @@ namespace NzbDrone.Core.Datastore.Migrations new Column("Ignored", DbType.Boolean, ColumnProperty.NotNull, false), new Column("EpisodeFileId", DbType.Int32, ColumnProperty.Null), new Column("AirDate", DbType.DateTime, ColumnProperty.Null), - new Column("GrabDate", DbType.DateTime, ColumnProperty.Null), + new Column("GrabDate", DbType.DateTime, ColumnProperty.Null) }); @@ -88,7 +88,7 @@ namespace NzbDrone.Core.Datastore.Migrations Database.AddTable("Config", "SQLite", new[] { new Column("Key", DbType.String, ColumnProperty.PrimaryKey), - new Column("Value", DbType.String, ColumnProperty.NotNull), + new Column("Value", DbType.String, ColumnProperty.NotNull) }); Database.AddTable("History", "SQLite", new[] @@ -106,7 +106,7 @@ namespace NzbDrone.Core.Datastore.Migrations Database.AddTable("RootDirs", "SQLite", new[] { new Column("Id", DbType.Int32, ColumnProperty.PrimaryKey), - new Column("Path", DbType.String, ColumnProperty.NotNull), + new Column("Path", DbType.String, ColumnProperty.NotNull) }); Database.AddTable("ExternalNotificationSettings", "SQLite", new[] @@ -116,6 +116,17 @@ namespace NzbDrone.Core.Datastore.Migrations new Column("NotifierName", DbType.String, ColumnProperty.NotNull), new Column("Name", DbType.String, ColumnProperty.NotNull) }); + + Database.AddTable("JobSettings", "SQLite", new[] + { + new Column("Id", DbType.Int32, ColumnProperty.PrimaryKey), + new Column("Enable", DbType.Boolean, ColumnProperty.NotNull), + new Column("TypeName", DbType.String, ColumnProperty.NotNull), + new Column("Name", DbType.String, ColumnProperty.NotNull), + new Column("Interval", DbType.Int32, ColumnProperty.NotNull), + new Column("LastExecution", DbType.DateTime, ColumnProperty.NotNull), + new Column("Success", DbType.Boolean, ColumnProperty.NotNull) + }); } public override void Down() diff --git a/NzbDrone.Core/Providers/Jobs/JobProvider.cs b/NzbDrone.Core/Providers/Jobs/JobProvider.cs index a64344c30..39c15b4d0 100644 --- a/NzbDrone.Core/Providers/Jobs/JobProvider.cs +++ b/NzbDrone.Core/Providers/Jobs/JobProvider.cs @@ -7,6 +7,7 @@ using Ninject; using NLog; using NzbDrone.Core.Model.Notification; using NzbDrone.Core.Repository; +using PetaPoco; using SubSonic.Repository; namespace NzbDrone.Core.Providers.Jobs @@ -14,7 +15,7 @@ namespace NzbDrone.Core.Providers.Jobs public class JobProvider { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - private readonly IRepository _repository; + private readonly IDatabase _database; private readonly NotificationProvider _notificationProvider; private readonly IList _jobs; @@ -26,9 +27,9 @@ namespace NzbDrone.Core.Providers.Jobs private ProgressNotification _notification; [Inject] - public JobProvider(IRepository repository, NotificationProvider notificationProvider, IList jobs) + public JobProvider(IDatabase database, NotificationProvider notificationProvider, IList jobs) { - _repository = repository; + _database = database; _notificationProvider = notificationProvider; _jobs = jobs; } @@ -42,7 +43,7 @@ namespace NzbDrone.Core.Providers.Jobs /// public virtual List All() { - return _repository.All().ToList(); + return _database.Fetch().ToList(); } /// @@ -54,12 +55,12 @@ namespace NzbDrone.Core.Providers.Jobs if (settings.Id == 0) { Logger.Debug("Adding job settings for {0}", settings.Name); - _repository.Add(settings); + _database.Insert(settings); } else { Logger.Debug("Updating job settings for {0}", settings.Name); - _repository.Update(settings); + _database.Update(settings); } } diff --git a/NzbDrone.Core/Repository/JobSetting.cs b/NzbDrone.Core/Repository/JobSetting.cs index a32ac7d1a..27e2ddecb 100644 --- a/NzbDrone.Core/Repository/JobSetting.cs +++ b/NzbDrone.Core/Repository/JobSetting.cs @@ -1,8 +1,11 @@ using System; +using PetaPoco; using SubSonic.SqlGeneration.Schema; namespace NzbDrone.Core.Repository { + [TableName("JobSettings")] + [PrimaryKey("Id", autoIncrement = true)] public class JobSetting { [SubSonicPrimaryKey(true)]