diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-02-19 12:50:05 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-02-19 12:50:05 -0500 |
| commit | 8c09665c40776060a09655fb4ea04ec65bdffb73 (patch) | |
| tree | b1432a7315a7a7689be21fa2e3cc122350c778b2 /MediaBrowser.Api/TvShowsService.cs | |
| parent | 3cce8731614e6846096bbe54fca8336e7f5d98d9 (diff) | |
| parent | f2c3dade77878b48a9a333d745e5d92a0f913233 (diff) | |
Merge pull request #1016 from MediaBrowser/dev
3.0.5518.5
Diffstat (limited to 'MediaBrowser.Api/TvShowsService.cs')
| -rw-r--r-- | MediaBrowser.Api/TvShowsService.cs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index 13ec1db3c..9c9feead5 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -157,6 +157,9 @@ namespace MediaBrowser.Api [ApiMember(Name = "AdjacentTo", Description = "Optional. Return items that are siblings of a supplied item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string AdjacentTo { get; set; } + [ApiMember(Name = "StartItemId", Description = "Optional. Skip through the list until a given item is found.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string StartItemId { get; set; } + /// <summary> /// Skips over a given number of items within the results. Use for paging. /// </summary> @@ -475,6 +478,11 @@ namespace MediaBrowser.Api episodes = episodes.Where(i => i.IsVirtualUnaired == val); } + if (!string.IsNullOrWhiteSpace(request.StartItemId)) + { + episodes = episodes.SkipWhile(i => !string.Equals(i.Id.ToString("N"), request.StartItemId, StringComparison.OrdinalIgnoreCase)); + } + IEnumerable<BaseItem> returnItems = episodes; // This must be the last filter @@ -483,9 +491,10 @@ namespace MediaBrowser.Api returnItems = UserViewBuilder.FilterForAdjacency(returnItems, request.AdjacentTo); } - returnItems = _libraryManager.ReplaceVideosWithPrimaryVersions(returnItems); + var returnList = _libraryManager.ReplaceVideosWithPrimaryVersions(returnItems) + .ToList(); - var pagedItems = ApplyPaging(returnItems, request.StartIndex, request.Limit); + var pagedItems = ApplyPaging(returnList, request.StartIndex, request.Limit); var dtoOptions = GetDtoOptions(request); @@ -494,7 +503,7 @@ namespace MediaBrowser.Api return new ItemsResult { - TotalRecordCount = dtos.Length, + TotalRecordCount = returnList.Count, Items = dtos }; } |
