diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-03-21 13:32:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-21 13:32:25 -0400 |
| commit | 36d401218b37820c8d3cb613db2aee32b7176d82 (patch) | |
| tree | 7df1f461867803d30a5c2736b2d5f2f59c95b9e1 /Emby.Server.Implementations | |
| parent | 9148b6d27d85b3fb2b1c1b736668db2fc1ee6131 (diff) | |
| parent | d5b861c88e1b81097c75122d10e848dd9cf50e53 (diff) | |
Merge pull request #2536 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Implementations')
| -rw-r--r-- | Emby.Server.Implementations/TV/TVSeriesManager.cs | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/Emby.Server.Implementations/TV/TVSeriesManager.cs b/Emby.Server.Implementations/TV/TVSeriesManager.cs index 9dfaa102a..b5e64bc23 100644 --- a/Emby.Server.Implementations/TV/TVSeriesManager.cs +++ b/Emby.Server.Implementations/TV/TVSeriesManager.cs @@ -77,7 +77,7 @@ namespace Emby.Server.Implementations.TV // Avoid implicitly captured closure var episodes = GetNextUpEpisodes(request, user, items); - return GetResult(episodes, null, request); + return GetResult(episodes, request); } public QueryResult<BaseItem> GetNextUp(NextUpQuery request, List<Folder> parentsFolders) @@ -128,7 +128,7 @@ namespace Emby.Server.Implementations.TV // Avoid implicitly captured closure var episodes = GetNextUpEpisodes(request, user, items); - return GetResult(episodes, null, request); + return GetResult(episodes, request); } public IEnumerable<Episode> GetNextUpEpisodes(NextUpQuery request, User user, IEnumerable<string> seriesKeys) @@ -163,8 +163,7 @@ namespace Emby.Server.Implementations.TV return false; }) .Select(i => i.Item2()) - .Where(i => i != null) - .Take(request.Limit ?? int.MaxValue); + .Where(i => i != null); } private string GetUniqueSeriesKey(BaseItem series) @@ -232,24 +231,30 @@ namespace Emby.Server.Implementations.TV return new Tuple<DateTime, Func<Episode>>(DateTime.MinValue, getEpisode); } - private QueryResult<BaseItem> GetResult(IEnumerable<BaseItem> items, int? totalRecordLimit, NextUpQuery query) + private QueryResult<BaseItem> GetResult(IEnumerable<BaseItem> items, NextUpQuery query) { - var itemsArray = totalRecordLimit.HasValue ? items.Take(totalRecordLimit.Value).ToArray() : items.ToArray(); - var totalCount = itemsArray.Length; + int totalCount = 0; - if (query.Limit.HasValue) + if (query.EnableTotalRecordCount) { - itemsArray = itemsArray.Skip(query.StartIndex ?? 0).Take(query.Limit.Value).ToArray(); + var list = items.ToList(); + totalCount = list.Count; + items = list; } - else if (query.StartIndex.HasValue) + + if (query.StartIndex.HasValue) + { + items = items.Skip(query.StartIndex.Value); + } + if (query.Limit.HasValue) { - itemsArray = itemsArray.Skip(query.StartIndex.Value).ToArray(); + items = items.Take(query.Limit.Value); } return new QueryResult<BaseItem> { TotalRecordCount = totalCount, - Items = itemsArray + Items = items.ToArray() }; } } |
