diff --git a/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs b/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs index a88d832ea..a3cd0b10a 100644 Binary files a/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs and b/NzbDrone.Core.Test/TvTests/RefreshEpisodeServiceFixture.cs differ diff --git a/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs b/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs index 1d2e85ab1..c073096d6 100644 --- a/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs +++ b/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs @@ -9,17 +9,17 @@ namespace NzbDrone.Core.IndexerSearch { public class SeriesSearchService : IExecute { - private readonly ISeasonService _seasonService; + private readonly ISeriesService _seriesService; private readonly ISearchForNzb _nzbSearchService; private readonly IDownloadApprovedReports _downloadApprovedReports; private readonly Logger _logger; - public SeriesSearchService(ISeasonService seasonService, + public SeriesSearchService(ISeriesService seriesService, ISearchForNzb nzbSearchService, IDownloadApprovedReports downloadApprovedReports, Logger logger) { - _seasonService = seasonService; + _seriesService = seriesService; _nzbSearchService = nzbSearchService; _downloadApprovedReports = downloadApprovedReports; _logger = logger; @@ -27,14 +27,11 @@ namespace NzbDrone.Core.IndexerSearch public void Execute(SeriesSearchCommand message) { - var seasons = _seasonService.GetSeasonsBySeries(message.SeriesId) - .Where(s => s.SeasonNumber > 0) - .OrderBy(s => s.SeasonNumber) - .ToList(); + var series = _seriesService.GetSeries(message.SeriesId); var downloadedCount = 0; - foreach (var season in seasons) + foreach (var season in series.Seasons) { var decisions = _nzbSearchService.SeasonSearch(message.SeriesId, season.SeasonNumber); downloadedCount += _downloadApprovedReports.DownloadApproved(decisions).Count; diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index 2ef60e047..197d06090 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -419,7 +419,6 @@ - @@ -596,4 +595,4 @@ --> - + \ No newline at end of file diff --git a/NzbDrone.Core/Tv/RefreshEpisodeService.cs b/NzbDrone.Core/Tv/RefreshEpisodeService.cs index e5d63d3ad..3ad4ff209 100644 --- a/NzbDrone.Core/Tv/RefreshEpisodeService.cs +++ b/NzbDrone.Core/Tv/RefreshEpisodeService.cs @@ -15,15 +15,12 @@ namespace NzbDrone.Core.Tv public class RefreshEpisodeService : IRefreshEpisodeService { private readonly IEpisodeService _episodeService; - private readonly ISeasonService _seasonService; private readonly IMessageAggregator _messageAggregator; private readonly Logger _logger; - public RefreshEpisodeService(IEpisodeService episodeService, - ISeasonService seasonService, IMessageAggregator messageAggregator, Logger logger) + public RefreshEpisodeService(IEpisodeService episodeService, IMessageAggregator messageAggregator, Logger logger) { _episodeService = episodeService; - _seasonService = seasonService; _messageAggregator = messageAggregator; _logger = logger; } @@ -35,7 +32,7 @@ namespace NzbDrone.Core.Tv var failCount = 0; var existingEpisodes = _episodeService.GetEpisodeBySeries(series.Id); - var seasons = _seasonService.GetSeasonsBySeries(series.Id); + var seasons = series.Seasons; var updateList = new List(); var newList = new List(); diff --git a/NzbDrone.Core/Tv/RefreshSeriesService.cs b/NzbDrone.Core/Tv/RefreshSeriesService.cs index a84d60f86..1a8556374 100644 --- a/NzbDrone.Core/Tv/RefreshSeriesService.cs +++ b/NzbDrone.Core/Tv/RefreshSeriesService.cs @@ -79,8 +79,15 @@ namespace NzbDrone.Core.Tv foreach (var season in seriesInfo.Seasons) { var existingSeason = series.Seasons.SingleOrDefault(s => s.SeasonNumber == season.SeasonNumber); - - if (existingSeason != null) + + //Todo: Should this should use the previous season's monitored state? + if (existingSeason == null) + { + _logger.Trace("New season ({0}) for series: [{1}] {2}, setting monitored to true", season.SeasonNumber, series.TvdbId, series.Title); + season.Monitored = true; + } + + else { season.Monitored = existingSeason.Monitored; } diff --git a/NzbDrone.Core/Tv/SeasonService.cs b/NzbDrone.Core/Tv/SeasonService.cs deleted file mode 100644 index 9b576fbbb..000000000 Binary files a/NzbDrone.Core/Tv/SeasonService.cs and /dev/null differ diff --git a/NzbDrone.Core/Tv/SeriesService.cs b/NzbDrone.Core/Tv/SeriesService.cs index 0693fd4e0..95daaa417 100644 --- a/NzbDrone.Core/Tv/SeriesService.cs +++ b/NzbDrone.Core/Tv/SeriesService.cs @@ -119,11 +119,6 @@ namespace NzbDrone.Core.Tv public Series UpdateSeries(Series series) { - foreach (var season in series.Seasons) - { - _episodeService.SetEpisodeMonitoredBySeason(series.Id, season.SeasonNumber, season.Monitored); - } - return _seriesRepository.Update(series); }