diff --git a/NzbDrone.Core.Test/ProviderTests/SeriesProviderTest.cs b/NzbDrone.Core.Test/ProviderTests/SeriesProviderTest.cs index 6fcea99d9..3b5630d61 100644 --- a/NzbDrone.Core.Test/ProviderTests/SeriesProviderTest.cs +++ b/NzbDrone.Core.Test/ProviderTests/SeriesProviderTest.cs @@ -317,6 +317,42 @@ namespace NzbDrone.Core.Test.ProviderTests Assert.AreEqual(5, series[0].EpisodeFileCount); } + [Test] + public void Get_Series_should_not_return_series_that_do_not_have_info_synced_yet() + { + WithRealDb(); + + var fakeQuality = Builder.CreateNew().Build(); + + var fakeSeries = Builder.CreateListOfSize(5) + .All() + .With(e => e.QualityProfileId = fakeQuality.QualityProfileId) + .TheLast(2) + .With(e => e.LastInfoSync = null) + .Build(); + + var fakeEpisodes = Builder.CreateListOfSize(10) + .All() + .With(e => e.SeriesId = fakeSeries.First().SeriesId) + .With(e => e.AirDate = DateTime.Today.AddDays(-1)) + .TheFirst(5) + .With(e => e.Ignored = false) + .TheLast(5) + .With(e => e.Ignored = true) + .Build(); + + Db.InsertMany(fakeSeries); + Db.Insert(fakeQuality); + Db.InsertMany(fakeEpisodes); + + //Act + Mocker.Resolve(); + var series = Mocker.Resolve().GetAllSeriesWithEpisodeCount(); + + //Assert + series.Should().HaveCount(3); + } + [Test] public void Get_Single_Series() { diff --git a/NzbDrone.Core/Providers/SeriesProvider.cs b/NzbDrone.Core/Providers/SeriesProvider.cs index fc1a0a619..86d4060fb 100644 --- a/NzbDrone.Core/Providers/SeriesProvider.cs +++ b/NzbDrone.Core/Providers/SeriesProvider.cs @@ -53,6 +53,7 @@ namespace NzbDrone.Core.Providers FROM Series INNER JOIN QualityProfiles ON Series.QualityProfileId = QualityProfiles.QualityProfileId LEFT JOIN Episodes ON Series.SeriesId = Episodes.SeriesId + WHERE Series.LastInfoSync IS NOT NULL 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", DateTime.Today);