Cleanup orphaned seasons when deleting episodes

This commit is contained in:
Mark McDowall 2013-08-28 18:43:45 -07:00
commit 9e5353aacc
6 changed files with 120 additions and 5 deletions

View file

@ -34,7 +34,7 @@ namespace NzbDrone.Core.Tv
var successCount = 0;
var failCount = 0;
var existinEpisodes = _episodeService.GetEpisodeBySeries(series.Id);
var existingEpisodes = _episodeService.GetEpisodeBySeries(series.Id);
var seasons = _seasonService.GetSeasonsBySeries(series.Id);
var updateList = new List<Episode>();
@ -44,11 +44,11 @@ namespace NzbDrone.Core.Tv
{
try
{
var episodeToUpdate = existinEpisodes.SingleOrDefault(e => e.SeasonNumber == episode.SeasonNumber && e.EpisodeNumber == episode.EpisodeNumber);
var episodeToUpdate = existingEpisodes.SingleOrDefault(e => e.SeasonNumber == episode.SeasonNumber && e.EpisodeNumber == episode.EpisodeNumber);
if (episodeToUpdate != null)
{
existinEpisodes.Remove(episodeToUpdate);
existingEpisodes.Remove(episodeToUpdate);
updateList.Add(episodeToUpdate);
}
else
@ -82,11 +82,10 @@ namespace NzbDrone.Core.Tv
AdjustMultiEpisodeAirTime(series, allEpisodes);
_episodeService.DeleteMany(existinEpisodes);
_episodeService.DeleteMany(existingEpisodes);
_episodeService.UpdateMany(updateList);
_episodeService.InsertMany(newList);
if (newList.Any())
{
_messageAggregator.PublishEvent(new EpisodeInfoAddedEvent(newList, series));
@ -97,6 +96,11 @@ namespace NzbDrone.Core.Tv
_messageAggregator.PublishEvent(new EpisodeInfoUpdatedEvent(updateList));
}
if (existingEpisodes.Any())
{
_messageAggregator.PublishEvent(new EpisodeInfoDeletedEvent(updateList));
}
if (failCount != 0)
{
_logger.Info("Finished episode refresh for series: {0}. Successful: {1} - Failed: {2} ",