1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-16 11:37:58 +02:00
Sonarr/NzbDrone.Core/Tv/SeasonService.cs
2013-09-09 23:44:00 -07:00

84 lines
6.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using NLog;
using NzbDrone.Common.Messaging;
using NzbDrone.Core.DecisionEngine.Specifications;
using NzbDrone.Core.Tv.Events;
namespace NzbDrone.Core.Tv
{
public interface ISeasonService
{
// void SetMonitored(int seriesId, int seasonNumber, bool monitored);
// List<Season> SetSeasonPass(int seriesId, int seasonNumber);
List<Season> GetSeasonsBySeries(int seriesId);
List<Season> GetAllSeasons();
}
public class SeasonService : ISeasonService
{
private readonly ISeasonRepository _seasonRepository;
private readonly IEpisodeService _episodeService;
private readonly Logger _logger;
public SeasonService(ISeasonRepository seasonRepository, IEpisodeService episodeService, Logger logger)
{
_seasonRepository = seasonRepository;
_episodeService = episodeService;
_logger = logger;
}
// public void SetMonitored(int seriesId, int seasonNumber, bool monitored)
// {
// var season = _seasonRepository.Get(seriesId, seasonNumber);
//
// _logger.Trace("Setting monitored flag on Series:{0} Season:{1} to {2}", seriesId, seasonNumber, monitored);
//
// season.Monitored = monitored;
// _episodeService.SetEpisodeMonitoredBySeason(seriesId, seasonNumber, monitored);
// _seasonRepository.Update(season);
//
// _logger.Info("Monitored flag for Series:{0} Season:{1} successfully set to {2}", seriesId, seasonNumber, monitored);
// }
//
// public List<Season> SetSeasonPass(int seriesId, int seasonNumber)
// {
// _logger.Trace("Setting up Season Pass for {0} starting with season: {0}", seriesId, seasonNumber);
//
// var seasons = GetSeasonsBySeries(seriesId);
//
// foreach (var season in seasons)
// {
// if (season.SeasonNumber >= seasonNumber)
// {
// _logger.Trace("Setting monitored flag on Series:{0} Season:{1} to {2}", seriesId, seasonNumber, true);
// season.Monitored = true;
// _episodeService.SetEpisodeMonitoredBySeason(seriesId, season.SeasonNumber, true);
// }
//
// else
// {
// _logger.Trace("Setting monitored flag on Series:{0} Season:{1} to {2}", seriesId, seasonNumber, false);
// season.Monitored = false;
// _episodeService.SetEpisodeMonitoredBySeason(seriesId, season.SeasonNumber, false);
// }
// }
//
// _seasonRepository.UpdateMany(seasons);
// _logger.Trace("Season Pass set for {0} starting with season: {0}", seriesId, seasonNumber);
//
// return seasons;
// }
public List<Season> GetSeasonsBySeries(int seriesId)
{
return _seasonRepository.GetSeasonBySeries(seriesId);
}
public List<Season> GetAllSeasons()
{
return _seasonRepository.All().SelectMany(s => s.Seasons).ToList();
}
}
}