aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-07-23 16:27:22 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-07-23 16:27:22 -0400
commit6a5684c2f5ceabb0af18b7b166dac063f062bae5 (patch)
tree14acaf9e165839742c543c0f29bdf8ef07f00f05
parent7d980fee4595a7b5eb2adab582694e7b00afb14b (diff)
avoid completely empty next up view
-rw-r--r--MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs21
1 files changed, 19 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs
index c2a4339f0..ddc1de9cd 100644
--- a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs
+++ b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs
@@ -119,12 +119,29 @@ namespace MediaBrowser.Server.Implementations.TV
// Avoid implicitly captured closure
var currentUser = user;
- return series
+ var allNextUp = series
.Select(i => GetNextUp(i, currentUser))
+ .Where(i => i.Item1 != null)
// Include if an episode was found, and either the series is not unwatched or the specific series was requested
- .Where(i => i.Item1 != null && (!i.Item3 || !string.IsNullOrWhiteSpace(request.SeriesId)))
.OrderByDescending(i => i.Item2)
.ThenByDescending(i => i.Item1.PremiereDate ?? DateTime.MinValue)
+ .ToList();
+
+ // If viewing all next up for all series, remove first episodes
+ if (string.IsNullOrWhiteSpace(request.SeriesId))
+ {
+ var withoutFirstEpisode = allNextUp
+ .Where(i => !i.Item3)
+ .ToList();
+
+ // But if that returns empty, keep those first episodes (avoid completely empty view)
+ if (withoutFirstEpisode.Count > 0)
+ {
+ allNextUp = withoutFirstEpisode;
+ }
+ }
+
+ return allNextUp
.Select(i => i.Item1)
.Take(request.Limit ?? int.MaxValue);
}