using System; using System.Linq; using NLog; using NzbDrone.Core.Model.Notification; using NzbDrone.Core.Providers; namespace NzbDrone.Core.Jobs { public class SeriesSearchJob : IJob { private readonly SeasonSearchJob _seasonSearchJob; private readonly SeasonProvider _seasonProvider; private static readonly Logger logger = LogManager.GetCurrentClassLogger(); public SeriesSearchJob(SeasonSearchJob seasonSearchJob, SeasonProvider seasonProvider) { _seasonSearchJob = seasonSearchJob; _seasonProvider = seasonProvider; } public string Name { get { return "Series Search"; } } public TimeSpan DefaultInterval { get { return TimeSpan.FromTicks(0); } } public void Start(ProgressNotification notification, int targetId, int secondaryTargetId) { if (targetId <= 0) throw new ArgumentOutOfRangeException("targetId"); logger.Debug("Getting seasons from database for series: {0}", targetId); var seasons = _seasonProvider.GetSeasons(targetId).Where(s => s > 0); foreach (var season in seasons) { if (!_seasonProvider.IsIgnored(targetId, season)) { _seasonSearchJob.Start(notification, targetId, season); } } } } }