diff --git a/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs b/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs index 0ef166b31..55dde1e13 100644 --- a/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs +++ b/NzbDrone.Core/DataAugmentation/Scene/SceneMappingService.cs @@ -54,7 +54,7 @@ namespace NzbDrone.Core.DataAugmentation.Scene public string GetSceneName(int seriesId, int seasonNumber = -1) { - var tvDbId = _seriesService.FindByTvdbId(seriesId).TvDbId; + var tvDbId = _seriesService.FindByTvdbId(seriesId).TvdbId; var mapping = _repository.FindByTvdbId(tvDbId); diff --git a/NzbDrone.Core/MediaCover/MediaCoverService.cs b/NzbDrone.Core/MediaCover/MediaCoverService.cs index 317894290..5ea67cdf8 100644 --- a/NzbDrone.Core/MediaCover/MediaCoverService.cs +++ b/NzbDrone.Core/MediaCover/MediaCoverService.cs @@ -55,7 +55,7 @@ namespace NzbDrone.Core.MediaCover } catch (Exception e) { - _logger.ErrorException("Couldn't download media cover for " + series.TvDbId, e); + _logger.ErrorException("Couldn't download media cover for " + series.TvdbId, e); } } diff --git a/NzbDrone.Core/MetadataSource/TraktProxy.cs b/NzbDrone.Core/MetadataSource/TraktProxy.cs index 02ec7f724..fc7e7aabb 100644 --- a/NzbDrone.Core/MetadataSource/TraktProxy.cs +++ b/NzbDrone.Core/MetadataSource/TraktProxy.cs @@ -47,7 +47,7 @@ namespace NzbDrone.Core.MetadataSource private static Series MapSeries(Show show) { var series = new Series(); - series.TvDbId = show.tvdb_id; + series.TvdbId = show.tvdb_id; series.TvRageId = show.tvrage_id; series.ImdbId = show.imdb_id; series.Title = show.title; diff --git a/NzbDrone.Core/Tv/EpisodeRepository.cs b/NzbDrone.Core/Tv/EpisodeRepository.cs index 443f048c9..5dcb0e297 100644 Binary files a/NzbDrone.Core/Tv/EpisodeRepository.cs and b/NzbDrone.Core/Tv/EpisodeRepository.cs differ diff --git a/NzbDrone.Core/Tv/EpisodeService.cs b/NzbDrone.Core/Tv/EpisodeService.cs index 8142d64b2..68478a348 100644 --- a/NzbDrone.Core/Tv/EpisodeService.cs +++ b/NzbDrone.Core/Tv/EpisodeService.cs @@ -47,15 +47,19 @@ namespace NzbDrone.Core.Tv private readonly IEpisodeRepository _episodeRepository; private readonly IEventAggregator _eventAggregator; private readonly IConfigService _configService; + private readonly ISeriesService _seriesService; private readonly Logger _logger; - public EpisodeService(IProvideEpisodeInfo episodeInfoProxy, ISeasonRepository seasonRepository, IEpisodeRepository episodeRepository, IEventAggregator eventAggregator, IConfigService configService, Logger logger) + public EpisodeService(IProvideEpisodeInfo episodeInfoProxy, ISeasonRepository seasonRepository, + IEpisodeRepository episodeRepository, IEventAggregator eventAggregator, + IConfigService configService, ISeriesService seriesService, Logger logger) { _episodeInfoProxy = episodeInfoProxy; _seasonRepository = seasonRepository; _episodeRepository = episodeRepository; _eventAggregator = eventAggregator; _configService = configService; + _seriesService = seriesService; _logger = logger; } @@ -89,7 +93,6 @@ namespace NzbDrone.Core.Tv return _episodeRepository.GetEpisodes(seriesId, seasonNumber); } - public List EpisodesWithoutFiles(bool includeSpecials) { return _episodeRepository.EpisodesWithoutFiles(includeSpecials); @@ -111,7 +114,7 @@ namespace NzbDrone.Core.Tv var successCount = 0; var failCount = 0; - var tvdbEpisodes = _episodeInfoProxy.GetEpisodeInfo(series.TvDbId); + var tvdbEpisodes = _episodeInfoProxy.GetEpisodeInfo(series.TvdbId); var seriesEpisodes = GetEpisodeBySeries(series.Id); var updateList = new List(); @@ -281,7 +284,15 @@ namespace NzbDrone.Core.Tv public List EpisodesBetweenDates(DateTime start, DateTime end) { - return _episodeRepository.EpisodesBetweenDates(start.ToUniversalTime(), end.ToUniversalTime()); + var episodes = _episodeRepository.EpisodesBetweenDates(start.ToUniversalTime(), end.ToUniversalTime()); + var series = _seriesService.GetSeriesInList(episodes.Select(e => e.SeriesId).Distinct()); + + episodes.ForEach(e => + { + e.Series = series.SingleOrDefault(s => s.Id == e.SeriesId); + }); + + return episodes; } public void Handle(EpisodeGrabbedEvent message) diff --git a/NzbDrone.Core/Tv/Series.cs b/NzbDrone.Core/Tv/Series.cs index d542015e8..3f5231687 100644 --- a/NzbDrone.Core/Tv/Series.cs +++ b/NzbDrone.Core/Tv/Series.cs @@ -24,7 +24,7 @@ namespace NzbDrone.Core.Tv Images = new List(); } - public int TvDbId { get; set; } + public int TvdbId { get; set; } public int TvRageId { get; set; } public string ImdbId { get; set; } public string Title { get; set; } diff --git a/NzbDrone.Core/Tv/SeriesRepository.cs b/NzbDrone.Core/Tv/SeriesRepository.cs index 65c5ebda9..7cb0e3aad 100644 --- a/NzbDrone.Core/Tv/SeriesRepository.cs +++ b/NzbDrone.Core/Tv/SeriesRepository.cs @@ -13,6 +13,7 @@ namespace NzbDrone.Core.Tv Series FindByTvdbId(int tvdbId); void SetSeriesType(int seriesId, SeriesTypes seriesTypes); void SetTvRageId(int seriesId, int tvRageId); + List SeriesIsInList(IEnumerable ids); } public class SeriesRepository : BasicRepository, ISeriesRepository @@ -39,7 +40,7 @@ namespace NzbDrone.Core.Tv public Series FindByTvdbId(int tvdbId) { - return Query.SingleOrDefault(s => s.TvDbId.Equals(tvdbId)); + return Query.SingleOrDefault(s => s.TvdbId.Equals(tvdbId)); } public void SetSeriesType(int seriesId, SeriesTypes seriesType) @@ -51,5 +52,10 @@ namespace NzbDrone.Core.Tv { SetFields(new Series { Id = seriesId, TvRageId = tvRageId }, s => s.TvRageId); } + + public List SeriesIsInList(IEnumerable ids) + { + return Query.Where(String.Format("Id IN ({0})", String.Join(",", ids))); + } } } \ No newline at end of file diff --git a/NzbDrone.Core/Tv/SeriesService.cs b/NzbDrone.Core/Tv/SeriesService.cs index 7cbedafb6..bf547db97 100644 --- a/NzbDrone.Core/Tv/SeriesService.cs +++ b/NzbDrone.Core/Tv/SeriesService.cs @@ -32,6 +32,7 @@ namespace NzbDrone.Core.Tv List GetAllSeries(); void UpdateSeries(Series series); bool SeriesPathExists(string folder); + List GetSeriesInList(IEnumerable seriesIds); } public class SeriesService : ISeriesService, IHandleAsync @@ -63,11 +64,10 @@ namespace NzbDrone.Core.Tv return _seriesRepository.Get(id).Monitored; } - public Series UpdateSeriesInfo(int seriesId) { var series = _seriesRepository.Get(seriesId); - var seriesInfo = _seriesInfoProxy.GetSeriesInfo(series.TvDbId); + var seriesInfo = _seriesInfoProxy.GetSeriesInfo(series.TvdbId); series.Title = seriesInfo.Title; series.AirTime = seriesInfo.AirTime; @@ -179,6 +179,11 @@ namespace NzbDrone.Core.Tv return _seriesRepository.SeriesPathExists(folder); } + public List GetSeriesInList(IEnumerable seriesIds) + { + return _seriesRepository.SeriesIsInList(seriesIds); + } + public void HandleAsync(SeriesAddedEvent message) { UpdateSeriesInfo(message.Series.Id); diff --git a/NzbDrone.ncrunchsolution b/NzbDrone.ncrunchsolution index 969da6dd4..c725a019c 100644 --- a/NzbDrone.ncrunchsolution +++ b/NzbDrone.ncrunchsolution @@ -2,7 +2,6 @@ 1 True true - true UseDynamicAnalysis Disabled Disabled