diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-03-20 17:38:54 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-03-20 17:38:54 -0400 |
| commit | 03b658ef85e509c3215888e5ec7a85643051e4df (patch) | |
| tree | 93937e6c38056cbe49c2d87d810337dc12b73869 /MediaBrowser.Controller | |
| parent | 53fc699d7652cc239c327e8c6db455119c25a206 (diff) | |
| parent | a2a0e1ae756b3eae6635ebb08ca1cad51898e0b8 (diff) | |
Merge pull request #1570 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index b36524851..dc0a8d0aa 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -167,7 +167,7 @@ namespace MediaBrowser.Controller.Entities { lock (_childrenSyncLock) { - var newChildren = _children.ToList(); + var newChildren = ChildIds.ToList(); newChildren.AddRange(children); _children = newChildren.ToList(); } @@ -176,11 +176,11 @@ namespace MediaBrowser.Controller.Entities { lock (_childrenSyncLock) { - if (!_children.Contains(child)) + var childIds = ChildIds.ToList(); + if (!childIds.Contains(child)) { - var newChildren = _children.ToList(); - newChildren.Add(child); - _children = newChildren.ToList(); + childIds.Add(child); + _children = childIds.ToList(); } } } @@ -189,7 +189,7 @@ namespace MediaBrowser.Controller.Entities { lock (_childrenSyncLock) { - _children = _children.Except(children).ToList(); + _children = ChildIds.Except(children).ToList(); } } @@ -257,7 +257,7 @@ namespace MediaBrowser.Controller.Entities /// Gets or sets the actual children. /// </summary> /// <value>The actual children.</value> - protected virtual IEnumerable<BaseItem> ActualChildren + protected virtual IEnumerable<Guid> ChildIds { get { @@ -267,12 +267,24 @@ namespace MediaBrowser.Controller.Entities { _children = LoadChildren().ToList(); } - return _children.Select(LibraryManager.GetItemById).Where(i => i != null); + return _children.ToList(); } } } /// <summary> + /// Gets the actual children. + /// </summary> + /// <value>The actual children.</value> + protected virtual IEnumerable<BaseItem> ActualChildren + { + get + { + return ChildIds.Select(LibraryManager.GetItemById).Where(i => i != null); + } + } + + /// <summary> /// thread-safe access to the actual children of this folder - without regard to user /// </summary> /// <value>The children.</value> @@ -912,6 +924,12 @@ namespace MediaBrowser.Controller.Entities } } + if (query.ItemIds.Length > 0) + { + Logger.Debug("Query requires post-filtering due to ItemIds"); + return true; + } + if (query.PersonIds.Length > 0) { Logger.Debug("Query requires post-filtering due to PersonIds"); |
