1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-11-01 08:22:35 +01:00
Sonarr/NzbDrone.Core/Providers/StatsProvider.cs
Mark McDowall cb992f1b52 Added StatsProvider.
Bound AutoConfigureProvider to kernel.
Feed Item Parsing will now check for a SceneName match in SceneNameHelper.
2011-04-25 22:54:12 -07:00

79 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
{
public class StatsProvider
{
private readonly SeriesProvider _seriesProvider;
public StatsProvider(SeriesProvider seriesProvider)
{
_seriesProvider = seriesProvider;
}
public virtual int SeriesCount()
{
return _seriesProvider.GetAllSeries().Count();
}
public virtual int ActiveSeriesCount()
{
return _seriesProvider.GetAllSeries().Where(s => s.Status == "Continuing").Count();
}
public virtual int EndedSeriesCount()
{
return _seriesProvider.GetAllSeries().Where(s => s.Status == "Ended").Count();
}
public virtual int TotalEpisodesCount()
{
var count = 0;
var series = _seriesProvider.GetAllSeries();
foreach (var s in series)
{
count += s.Episodes.Count;
}
return count;
}
public virtual int TotalAiredEpisodesCount()
{
var count = 0;
var series = _seriesProvider.GetAllSeries();
foreach (var s in series)
{
count += s.Episodes.Where(e => e.AirDate.Date <= DateTime.Today).Count();
}
return count;
}
public virtual int TotalUnairedEpisodesCount()
{
var count = 0;
var series = _seriesProvider.GetAllSeries();
foreach (var s in series)
{
count += s.Episodes.Where(e => e.AirDate.Date > DateTime.Today).Count();
}
return count;
}
public virtual int TotalEpisodesOnDisk()
{
var count = 0;
var series = _seriesProvider.GetAllSeries();
foreach (var s in series)
{
count += s.Episodes.Where(e => e.EpisodeFileId != 0).Count();
}
return count;
}
}
}