From fadda8ef5663beea338f65ef9c69cd96ec1c5858 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 26 Apr 2014 23:42:05 -0400 Subject: add new notification features --- MediaBrowser.Api/UserLibrary/ItemsService.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs') diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index f1b8b2d52..1682afb10 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -301,9 +301,10 @@ namespace MediaBrowser.Api.UserLibrary /// Task{ItemsResult}. private ItemsResult GetItems(GetItems request) { + var parentItem = string.IsNullOrEmpty(request.ParentId) ? null : _libraryManager.GetItemById(request.ParentId); var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null; - var items = GetItemsToSerialize(request, user); + var items = GetItemsToSerialize(request, user, parentItem); items = items.AsParallel(); @@ -320,7 +321,7 @@ namespace MediaBrowser.Api.UserLibrary items = items.AsEnumerable(); - if (CollapseBoxSetItems(request)) + if (CollapseBoxSetItems(request, parentItem)) { items = _collectionManager.CollapseItemsWithinBoxSets(items, user); } @@ -348,8 +349,14 @@ namespace MediaBrowser.Api.UserLibrary }; } - private bool CollapseBoxSetItems(GetItems request) + private bool CollapseBoxSetItems(GetItems request, BaseItem parentItem) { + // Could end up stuck in a loop like this + if (parentItem is BoxSet) + { + return false; + } + var param = request.CollapseBoxSetItems; if (!param.HasValue) @@ -369,13 +376,14 @@ namespace MediaBrowser.Api.UserLibrary /// /// The request. /// The user. + /// The parent item. /// IEnumerable{BaseItem}. /// - private IEnumerable GetItemsToSerialize(GetItems request, User user) + private IEnumerable GetItemsToSerialize(GetItems request, User user, BaseItem parentItem) { var item = string.IsNullOrEmpty(request.ParentId) ? user == null ? _libraryManager.RootFolder : user.RootFolder : - _libraryManager.GetItemById(request.ParentId); + parentItem; // Default list type = children IEnumerable items; @@ -1382,7 +1390,7 @@ namespace MediaBrowser.Api.UserLibrary { return false; } - + return true; } -- cgit v1.2.3