1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-31 07:52:37 +01:00
Sonarr/NzbDrone.Core/Providers/SeasonProvider.cs
markus101 da979639ba More config pages have been added. AJAX to save. Order with jquery sortable.
Some RssFeed Parsing has been implemented, it does not currently download items, still need to perform a more verbose episode check.
2011-01-28 22:10:22 -08:00

70 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using NLog;
using NzbDrone.Core.Repository;
using SubSonic.Repository;
using System.Linq;
namespace NzbDrone.Core.Providers
{
class SeasonProvider : ISeasonProvider
{
private readonly IRepository _sonicRepo;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SeasonProvider(IRepository dataRepository)
{
_sonicRepo = dataRepository;
}
public Season GetSeason(int seasonId)
{
return _sonicRepo.Single<Season>(seasonId);
}
public List<Season> GetSeasons(int seriesId)
{
return _sonicRepo.All<Season>().Where(s => s.SeriesId == seriesId).ToList();
}
public void EnsureSeason(int seriesId, int seasonId, int seasonNumber)
{
if (_sonicRepo.Exists<Season>(s => s.SeasonId == seasonId))
return;
//TODO: Calculate Season Folder
Logger.Trace("Adding Season To DB. [SeriesID:{0} SeasonID:{1} SeasonNumber:{2}]", seriesId, seasonId, seasonNumber, "????");
var newSeason = new Season()
{
Monitored = true,
SeasonId = seasonId,
SeasonNumber = seasonNumber,
SeriesId = seriesId
};
_sonicRepo.Add<Season>(newSeason);
}
public int SaveSeason(Season season)
{
throw new NotImplementedException();
}
public bool IsIgnored(int seasonId)
{
if (_sonicRepo.Single<Season>(seasonId).Monitored)
return true;
Logger.Debug("Season {0} is not wanted.");
return false;
}
public bool IsIgnored(int seriesId, int seasonNumber)
{
if (_sonicRepo.Single<Season>(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber).Monitored)
return true;
Logger.Debug("Season: {0} is not wanted for Series: {1}", seasonNumber, seriesId);
return false;
}
}
}