diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/CollectionFolder.cs | 29 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 29 |
2 files changed, 20 insertions, 38 deletions
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 6628ffc23..0ce88bee7 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -130,7 +130,6 @@ namespace MediaBrowser.Controller.Entities } private List<LinkedChild> _linkedChildren; - /// <summary> /// Our children are actually just references to the ones in the physical root... /// </summary> @@ -145,21 +144,9 @@ namespace MediaBrowser.Controller.Entities } private List<LinkedChild> GetLinkedChildrenInternal() { - Dictionary<string, string> locationsDicionary; - - try - { - locationsDicionary = PhysicalLocations.Distinct(StringComparer.OrdinalIgnoreCase).ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); - } - catch (IOException ex) - { - Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path); - return new List<LinkedChild>(); - } - return LibraryManager.RootFolder.Children .OfType<Folder>() - .Where(i => i.Path != null && locationsDicionary.ContainsKey(i.Path)) + .Where(i => i.Path != null && PhysicalLocations.Contains(i.Path, StringComparer.OrdinalIgnoreCase)) .SelectMany(c => c.LinkedChildren) .ToList(); } @@ -177,22 +164,10 @@ namespace MediaBrowser.Controller.Entities private IEnumerable<BaseItem> GetActualChildren() { - Dictionary<string, string> locationsDicionary; - - try - { - locationsDicionary = PhysicalLocations.Distinct(StringComparer.OrdinalIgnoreCase).ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); - } - catch (IOException ex) - { - Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path); - return new BaseItem[] { }; - } - return LibraryManager.RootFolder.Children .OfType<Folder>() - .Where(i => i.Path != null && locationsDicionary.ContainsKey(i.Path)) + .Where(i => i.Path != null && PhysicalLocations.Contains(i.Path, StringComparer.OrdinalIgnoreCase)) .SelectMany(c => c.Children) .ToList(); } diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 45daaba0b..21b34c733 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -446,24 +446,31 @@ namespace MediaBrowser.Controller.Entities { BaseItem currentChild; - if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child)) + if (currentChildren.TryGetValue(child.Id, out currentChild)) { - var currentChildLocationType = currentChild.LocationType; - if (currentChildLocationType != LocationType.Remote && - currentChildLocationType != LocationType.Virtual) + if (IsValidFromResolver(currentChild, child)) { - currentChild.DateModified = child.DateModified; - } + var currentChildLocationType = currentChild.LocationType; + if (currentChildLocationType != LocationType.Remote && + currentChildLocationType != LocationType.Virtual) + { + currentChild.DateModified = child.DateModified; + } - currentChild.IsOffline = false; + currentChild.IsOffline = false; + validChildren.Add(currentChild); + } + else + { + validChildren.Add(child); + } } else { - //brand new item - needs to be added + // Brand new item - needs to be added newItems.Add(child); + validChildren.Add(child); } - - validChildren.Add(currentChild); } // If any items were added or removed.... @@ -736,7 +743,7 @@ namespace MediaBrowser.Controller.Entities /// <returns>BaseItem.</returns> private BaseItem RetrieveChild(Guid child) { - var item = LibraryManager.RetrieveItem(child); + var item = LibraryManager.GetItemById(child); if (item != null) { |
