From 3a065b86f1249586ee7c0a772bbaff8d8d497e3d Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 21 Jun 2011 23:39:45 -0700 Subject: [PATCH 1/7] Fixed series grid after save so it has proper counts. --- NzbDrone.Core/Providers/SeriesProvider.cs | 4 ++-- NzbDrone.Web/Controllers/SeriesController.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/NzbDrone.Core/Providers/SeriesProvider.cs b/NzbDrone.Core/Providers/SeriesProvider.cs index 896f09a02..db097889c 100644 --- a/NzbDrone.Core/Providers/SeriesProvider.cs +++ b/NzbDrone.Core/Providers/SeriesProvider.cs @@ -42,11 +42,11 @@ namespace NzbDrone.Core.Providers return series; } - public virtual IList GetAllSeriesWithEpisodeCount(bool ignoreSpecials) + public virtual IList GetAllSeriesWithEpisodeCount(bool ignoreSpecialsInSeasonCount) { var seasonNumber = 0; - if (!ignoreSpecials) + if (!ignoreSpecialsInSeasonCount) seasonNumber = -1; var series = _database.Fetch(@"SELECT Series.*, COUNT (NULLIF(Ignored, 1)) AS EpisodeCount, diff --git a/NzbDrone.Web/Controllers/SeriesController.cs b/NzbDrone.Web/Controllers/SeriesController.cs index ed892ca8f..f4d85145f 100644 --- a/NzbDrone.Web/Controllers/SeriesController.cs +++ b/NzbDrone.Web/Controllers/SeriesController.cs @@ -80,7 +80,7 @@ namespace NzbDrone.Web.Controllers [GridAction] public ActionResult _AjaxSeriesGrid() { - var series = GetSeriesModels(_seriesProvider.GetAllSeriesWithEpisodeCount(true).ToList()); + var series = GetSeriesModels(_seriesProvider.GetAllSeriesWithEpisodeCount(true)); return View(new GridModel(series)); } @@ -96,7 +96,7 @@ namespace NzbDrone.Web.Controllers _seriesProvider.UpdateSeries(oldSeries); - var series = GetSeriesModels(_seriesProvider.GetAllSeries().ToList()); + var series = GetSeriesModels(_seriesProvider.GetAllSeriesWithEpisodeCount(true)); return View(new GridModel(series)); } @@ -192,7 +192,7 @@ namespace NzbDrone.Web.Controllers return RedirectToAction("Details", new { seriesId }); } - private List GetSeriesModels(List seriesInDb) + private List GetSeriesModels(IList seriesInDb) { var series = seriesInDb.Select(s => new SeriesModel { From 9f5b4612740795c01c6c036fd27388d909ddb3f4 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 22 Jun 2011 00:26:36 -0700 Subject: [PATCH 2/7] MediaFileProvider delete fixed to delete EpisodeFile with key of Int32 instead of object Int32. Added test to ensure File is deleted, but others remain. --- NzbDrone.Core.Test/MediaFileProviderTests.cs | 20 ++++++++++++++++++++ NzbDrone.Core/Providers/MediaFileProvider.cs | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/NzbDrone.Core.Test/MediaFileProviderTests.cs b/NzbDrone.Core.Test/MediaFileProviderTests.cs index 17e3e4a7f..f0f799f33 100644 --- a/NzbDrone.Core.Test/MediaFileProviderTests.cs +++ b/NzbDrone.Core.Test/MediaFileProviderTests.cs @@ -154,5 +154,25 @@ namespace NzbDrone.Core.Test //Assert Assert.AreEqual(expectedPath, result.FullName); } + + [Test] + public void DeleteEpisodeFile() + { + //Setup + var episodeFiles = Builder.CreateListOfSize(10).Build(); + + var mocker = new AutoMoqer(); + var database = MockLib.GetEmptyDatabase(true); + mocker.SetConstant(database); + database.InsertMany(episodeFiles); + + //Act + mocker.Resolve().Delete(1); + var result = database.Fetch(); + + //Assert + result.Should().HaveCount(9); + result.Should().NotContain(e => e.EpisodeFileId == 1); + } } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/MediaFileProvider.cs b/NzbDrone.Core/Providers/MediaFileProvider.cs index 2429cd71b..1ab2bb4d3 100644 --- a/NzbDrone.Core/Providers/MediaFileProvider.cs +++ b/NzbDrone.Core/Providers/MediaFileProvider.cs @@ -45,7 +45,7 @@ namespace NzbDrone.Core.Providers public virtual void Delete(int episodeFileId) { - _database.Delete(episodeFileId); + _database.Delete(episodeFileId); } public virtual bool Exists(string path) From b6178c9eef938c971116e7fc5bbf7c3dcaab675d Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 22 Jun 2011 16:44:42 -0700 Subject: [PATCH 3/7] Fixed an issue where RootPaths with a slash at the end would have double slash when adding a new Series. --- NzbDrone.Web/Controllers/AddSeriesController.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NzbDrone.Web/Controllers/AddSeriesController.cs b/NzbDrone.Web/Controllers/AddSeriesController.cs index 229c909e3..cfd14816d 100644 --- a/NzbDrone.Web/Controllers/AddSeriesController.cs +++ b/NzbDrone.Web/Controllers/AddSeriesController.cs @@ -126,10 +126,10 @@ namespace NzbDrone.Web.Controllers { try { - var path = - rootPath.Replace('|', Path.DirectorySeparatorChar).Replace('^', Path.VolumeSeparatorChar).Replace( - '`', '\'') + - Path.DirectorySeparatorChar + MediaFileProvider.CleanFilename(seriesName); + var path = Path.Combine(rootPath.Replace('|', Path.DirectorySeparatorChar) + .Replace('^', Path.VolumeSeparatorChar) + .Replace('`', '\''), + MediaFileProvider.CleanFilename(seriesName)); //Create the folder for the new series and then Add it _diskProvider.CreateDirectory(path); From 45f697f1501116d2662751265f69bc0dd2527816 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 22 Jun 2011 16:47:16 -0700 Subject: [PATCH 4/7] Series Name will now show in the examples if it is checked. --- NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml b/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml index 7b997f37e..311b3bc96 100644 --- a/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml +++ b/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml @@ -142,7 +142,7 @@