From 3df5d9444b1d19388d2444b83718205315876602 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 9 Jun 2015 00:32:17 -0700 Subject: [PATCH] Fixed: Next airing on series list --- .../SeriesStats/SeriesStatisticsService.cs | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs b/src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs index c03e4015c..33e44f737 100644 --- a/src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs +++ b/src/NzbDrone.Core/SeriesStats/SeriesStatisticsService.cs @@ -37,32 +37,28 @@ public SeriesStatistics SeriesStatistics(int seriesId) private SeriesStatistics MapSeriesStatistics(List seasonStatistics) { - return new SeriesStatistics - { - SeasonStatistics = seasonStatistics, - SeriesId = seasonStatistics.First().SeriesId, - EpisodeFileCount = seasonStatistics.Sum(s => s.EpisodeFileCount), - EpisodeCount = seasonStatistics.Sum(s => s.EpisodeCount), - TotalEpisodeCount = seasonStatistics.Sum(s => s.TotalEpisodeCount), - SizeOnDisk = seasonStatistics.Sum(s => s.SizeOnDisk), - NextAiringString = seasonStatistics.OrderBy(s => - { - DateTime nextAiring; + var seriesStatistics = new SeriesStatistics + { + SeasonStatistics = seasonStatistics, + SeriesId = seasonStatistics.First().SeriesId, + EpisodeFileCount = seasonStatistics.Sum(s => s.EpisodeFileCount), + EpisodeCount = seasonStatistics.Sum(s => s.EpisodeCount), + TotalEpisodeCount = seasonStatistics.Sum(s => s.TotalEpisodeCount), + SizeOnDisk = seasonStatistics.Sum(s => s.SizeOnDisk) + }; - if (!DateTime.TryParse(s.NextAiringString, out nextAiring)) return DateTime.MinValue; + var nextAiring = seasonStatistics.Where(s => s.NextAiring != null) + .OrderBy(s => s.NextAiring) + .FirstOrDefault(); - return nextAiring; - }).First().NextAiringString, + var previousAiring = seasonStatistics.Where(s => s.PreviousAiring != null) + .OrderBy(s => s.PreviousAiring) + .LastOrDefault(); - PreviousAiringString = seasonStatistics.OrderBy(s => - { - DateTime nextAiring; + seriesStatistics.NextAiringString = nextAiring != null ? nextAiring.NextAiringString : null; + seriesStatistics.PreviousAiringString = previousAiring != null ? previousAiring.PreviousAiringString : null; - if (!DateTime.TryParse(s.PreviousAiringString, out nextAiring)) return DateTime.MinValue; - - return nextAiring; - }).Last().PreviousAiringString - }; + return seriesStatistics; } } }