From 696a6b34eaaee1fc906d27a968d392b7b7193c41 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 4 May 2017 14:14:45 -0400 Subject: improve smb support --- .../Library/LibraryManager.cs | 30 ++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs') diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 684ad6284..685c794b7 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -1962,8 +1962,34 @@ namespace Emby.Server.Implementations.Library return new List(); } - return GetUserRootFolder().Children - .OfType() + return GetCollectionFoldersInternal(item, GetUserRootFolder().Children.OfType().ToList()); + } + + public List GetCollectionFolders(BaseItem item, List allUserRootChildren) + { + while (item != null) + { + var parent = item.GetParent(); + + if (parent == null || parent is AggregateFolder) + { + break; + } + + item = parent; + } + + if (item == null) + { + return new List(); + } + + return GetCollectionFoldersInternal(item, allUserRootChildren); + } + + private List GetCollectionFoldersInternal(BaseItem item, List allUserRootChildren) + { + return allUserRootChildren .Where(i => string.Equals(i.Path, item.Path, StringComparison.OrdinalIgnoreCase) || i.PhysicalLocations.Contains(item.Path, StringComparer.OrdinalIgnoreCase)) .ToList(); } -- cgit v1.2.3