From 7ec499acabb1e0e1d36e8924a44a0aa3e4481015 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 9 Jul 2011 19:45:31 -0700 Subject: [PATCH] Series with Episode count now ignores shows that haven't aired (includes ones that air today). --- NzbDrone.Core.Test/SeriesProviderTest.cs | 14 +++++++++++--- NzbDrone.Core/NzbDrone.Core.csproj | 1 - NzbDrone.Core/Providers/SeriesProvider.cs | 6 +++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/NzbDrone.Core.Test/SeriesProviderTest.cs b/NzbDrone.Core.Test/SeriesProviderTest.cs index 2e553989a..d6150e029 100644 --- a/NzbDrone.Core.Test/SeriesProviderTest.cs +++ b/NzbDrone.Core.Test/SeriesProviderTest.cs @@ -214,7 +214,15 @@ namespace NzbDrone.Core.Test var fakeQuality = Builder.CreateNew().Build(); var fakeSeries = Builder.CreateNew().With(e => e.QualityProfileId = fakeQuality.QualityProfileId).Build(); - var fakeEpisodes = Builder.CreateListOfSize(10).WhereAll().Have(e => e.SeriesId = fakeSeries.SeriesId).Have(e => e.Ignored = false).WhereRandom(5).Have(e => e.EpisodeFileId = 0).Build(); + var fakeEpisodes = Builder.CreateListOfSize(10) + .WhereAll().Have(e => e.SeriesId = fakeSeries.SeriesId) + .Have(e => e.Ignored = false) + .Have(e => e.AirDate = DateTime.Today) + .WhereTheFirst(5) + .Have(e => e.EpisodeFileId = 0) + .WhereTheLast(2) + .Have(e => e.AirDate = DateTime.Today.AddDays(1)) + .Build(); db.Insert(fakeSeries); db.Insert(fakeQuality); @@ -226,8 +234,8 @@ namespace NzbDrone.Core.Test //Assert series.Should().HaveCount(1); - Assert.AreEqual(10, series[0].EpisodeCount); - Assert.AreEqual(5, series[0].EpisodeFileCount); + Assert.AreEqual(8, series[0].EpisodeCount); + Assert.AreEqual(3, series[0].EpisodeFileCount); } [Test] diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index 154d385c2..77f707a84 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -196,7 +196,6 @@ - diff --git a/NzbDrone.Core/Providers/SeriesProvider.cs b/NzbDrone.Core/Providers/SeriesProvider.cs index 8d0ec18fd..2a5987214 100644 --- a/NzbDrone.Core/Providers/SeriesProvider.cs +++ b/NzbDrone.Core/Providers/SeriesProvider.cs @@ -47,8 +47,8 @@ namespace NzbDrone.Core.Providers var series = _database .Fetch(@"SELECT Series.SeriesId, Series.Title, Series.CleanTitle, Series.Status, Series.Overview, Series.AirsDayOfWeek,Series.AirTimes, Series.Language, Series.Path, Series.Monitored, Series.QualityProfileId, Series.SeasonFolder, - SUM(CASE WHEN Ignored = 0 THEN 1 ELSE 0 END) AS EpisodeCount, - SUM(CASE WHEN Episodes.Ignored = 0 AND Episodes.EpisodeFileId > 0 THEN 1 ELSE 0 END) as EpisodeFileCount, + SUM(CASE WHEN Ignored = 0 AND Airdate <= @0 THEN 1 ELSE 0 END) AS EpisodeCount, + SUM(CASE WHEN Episodes.Ignored = 0 AND Episodes.EpisodeFileId > 0 AND Episodes.AirDate <= @0 THEN 1 ELSE 0 END) as EpisodeFileCount, MAX(Episodes.SeasonNumber) as SeasonCount, QualityProfiles.QualityProfileId, QualityProfiles.Name, QualityProfiles.Cutoff, QualityProfiles.SonicAllowed FROM Series @@ -56,7 +56,7 @@ namespace NzbDrone.Core.Providers LEFT JOIN Episodes ON Series.SeriesId = Episodes.SeriesId GROUP BY Series.SeriesId, Series.Title, Series.CleanTitle, Series.Status, Series.Overview, Series.AirsDayOfWeek,Series.AirTimes, Series.Language, Series.Path, Series.Monitored, Series.QualityProfileId, Series.SeasonFolder, - QualityProfiles.QualityProfileId, QualityProfiles.Name, QualityProfiles.Cutoff, QualityProfiles.SonicAllowed"); + QualityProfiles.QualityProfileId, QualityProfiles.Name, QualityProfiles.Cutoff, QualityProfiles.SonicAllowed", DateTime.Today); return series; }