diff options
Diffstat (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 4bbb391cc..bf12e4e0a 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -1999,38 +1999,35 @@ namespace Emby.Server.Implementations.Library public List<Folder> GetCollectionFolders(BaseItem item) { + return GetCollectionFolders(item, GetUserRootFolder().Children.OfType<Folder>()); + } + + public List<Folder> GetCollectionFolders(BaseItem item, IEnumerable<Folder> allUserRootChildren) + { while (item is not null) { var parent = item.GetParent(); - if (parent is null || parent is AggregateFolder) + if (parent is AggregateFolder) { break; } - item = parent; - } - - if (item is null) - { - return new List<Folder>(); - } - - return GetCollectionFoldersInternal(item, GetUserRootFolder().Children.OfType<Folder>()); - } + if (parent is null) + { + var owner = item.GetOwner(); - public List<Folder> GetCollectionFolders(BaseItem item, List<Folder> allUserRootChildren) - { - while (item is not null) - { - var parent = item.GetParent(); + if (owner is null) + { + break; + } - if (parent is null || parent is AggregateFolder) + item = owner; + } + else { - break; + item = parent; } - - item = parent; } if (item is null) |
