aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary/ItemsService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs34
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;