diff options
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 97a81b790..ce7905b42 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -149,39 +149,35 @@ namespace MediaBrowser.Api.UserLibrary item = user == null ? _libraryManager.RootFolder : user.RootFolder; } - // Default list type = children - - var folder = item as Folder; - if (folder == null) - { - folder = user == null ? _libraryManager.RootFolder : _libraryManager.GetUserRootFolder(); - } - if (!string.IsNullOrEmpty(request.Ids)) { - request.Recursive = true; var query = GetItemsQuery(request, user); - var result = await folder.GetItems(query).ConfigureAwait(false); - - if (string.IsNullOrWhiteSpace(request.SortBy)) + var specificItems = _libraryManager.GetItemList(query).ToArray(); + if (query.SortBy.Length == 0) { var ids = query.ItemIds.ToList(); // Try to preserve order - result.Items = result.Items.OrderBy(i => ids.IndexOf(i.Id.ToString("N"))).ToArray(); + specificItems = specificItems.OrderBy(i => ids.IndexOf(i.Id.ToString("N"))).ToArray(); } - - return result; + return new QueryResult<BaseItem> + { + Items = specificItems.ToArray(), + TotalRecordCount = specificItems.Length + }; } - if (request.Recursive) + // Default list type = children + + var folder = item as Folder; + if (folder == null) { - return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); + folder = user == null ? _libraryManager.RootFolder : _libraryManager.GetUserRootFolder(); } - if (user == null) + if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || user == null) { - return await folder.GetItems(GetItemsQuery(request, null)).ConfigureAwait(false); + return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); } var userRoot = item as UserRootFolder; |
