79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using System;
|
|
using System.Linq;
|
|
using Ninject;
|
|
|
|
namespace NzbDrone.Core.Providers
|
|
{
|
|
public class StatsProvider
|
|
{
|
|
private readonly SeriesProvider _seriesProvider;
|
|
|
|
[Inject]
|
|
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;
|
|
}
|
|
|
|
|
|
}
|
|
}
|