diff --git a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs b/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs index 12513c980..0a8ed7d24 100644 --- a/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs +++ b/NzbDrone.Core.Test/TvTests/EpisodeRepositoryTests/EpisodesWithoutFilesFixture.cs @@ -16,6 +16,7 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeRepositoryTests var series = Builder.CreateNew() .With(s => s.Id = 0) .With(s => s.Runtime = 30) + .With(s => s.Monitored = true) .Build(); series.Id = Db.Insert(series).Id; diff --git a/NzbDrone.Core/Datastore/TableMapping.cs b/NzbDrone.Core/Datastore/TableMapping.cs index 55015eb00..80242f783 100644 --- a/NzbDrone.Core/Datastore/TableMapping.cs +++ b/NzbDrone.Core/Datastore/TableMapping.cs @@ -49,6 +49,7 @@ namespace NzbDrone.Core.Datastore Mapper.Entity().RegisterModel("Episodes") .Ignore(e => e.SeriesTitle) + .Ignore(e => e.Series) .Ignore(e => e.HasFile) .Relationship() .HasOne(episode => episode.EpisodeFile, episode => episode.EpisodeFileId); diff --git a/NzbDrone.Core/Tv/Episode.cs b/NzbDrone.Core/Tv/Episode.cs index bc1cfc51a..fb0e04682 100644 --- a/NzbDrone.Core/Tv/Episode.cs +++ b/NzbDrone.Core/Tv/Episode.cs @@ -25,6 +25,8 @@ namespace NzbDrone.Core.Tv public String SeriesTitle { get; private set; } public LazyLoaded EpisodeFile { get; set; } + + public Series Series { get; set; } public Boolean HasFile { diff --git a/NzbDrone.Core/Tv/EpisodeRepository.cs b/NzbDrone.Core/Tv/EpisodeRepository.cs index 61af1d8fd..fdd921b4c 100644 --- a/NzbDrone.Core/Tv/EpisodeRepository.cs +++ b/NzbDrone.Core/Tv/EpisodeRepository.cs @@ -84,9 +84,12 @@ namespace NzbDrone.Core.Tv startingSeasonNumber = 0; } - var pagingQuery = Query.Where(e => e.EpisodeFileId == 0) + var pagingQuery = Query.Join(JoinType.Inner, e => e.Series, (e, s) => e.SeriesId == s.Id) + .Where(e => e.EpisodeFileId == 0) .AndWhere(e => e.SeasonNumber >= startingSeasonNumber) .AndWhere(e => e.AirDate <= currentTime) + .AndWhere(e => e.Monitored) + .AndWhere(e => e.Series.Monitored) .OrderBy(pagingSpec.OrderByClause(), pagingSpec.ToSortDirection()) .Skip(pagingSpec.PagingOffset()) .Take(pagingSpec.PageSize);