diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-07-23 16:27:22 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-07-23 16:27:22 -0400 |
| commit | 6a5684c2f5ceabb0af18b7b166dac063f062bae5 (patch) | |
| tree | 14acaf9e165839742c543c0f29bdf8ef07f00f05 | |
| parent | 7d980fee4595a7b5eb2adab582694e7b00afb14b (diff) | |
avoid completely empty next up view
| -rw-r--r-- | MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs | 21 |
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); } |
