diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-05-21 00:49:17 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-05-21 00:49:17 -0400 |
| commit | b253d26abadc782c5bddc5ac5352ebe116154553 (patch) | |
| tree | e2648ab8fc6106aa0a3218cd2ce49a93a9ecb1da /MediaBrowser.Controller/Entities/UserViewBuilder.cs | |
| parent | a49a905ca2e00753d3658b0a4244374dbcfbed48 (diff) | |
| parent | 7596365af2fa819d440e1ae65befea88aec29bde (diff) | |
Merge branch 'beta'
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserViewBuilder.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserViewBuilder.cs | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index b88e8493d2..d4a8b07305 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -128,7 +128,11 @@ namespace MediaBrowser.Controller.Entities { if (query.Recursive) { - return GetResult(queryParent.GetRecursiveChildren(user, true), queryParent, query); + query.Recursive = true; + query.ParentId = queryParent.Id; + query.SetUser(user); + + return _libraryManager.GetItemsResult(query); } return GetResult(queryParent.GetChildren(user, true), queryParent, query); } @@ -251,7 +255,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -259,7 +262,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(MusicArtist).Name, typeof(MusicAlbum).Name, typeof(Audio.Audio).Name, typeof(MusicVideo).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List<BaseItem>(); @@ -329,9 +332,13 @@ namespace MediaBrowser.Controller.Entities private QueryResult<BaseItem> GetMusicAlbumArtists(Folder parent, User user, InternalItemsQuery query) { - var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }) - .Where(i => !i.IsFolder) - .OfType<IHasAlbumArtist>(); + var items = _libraryManager.GetItemList(new InternalItemsQuery(user) + { + Recursive = true, + ParentId = parent.Id, + IncludeItemTypes = new[] { typeof(Audio.Audio).Name } + + }).Cast<IHasAlbumArtist>(); var artists = _libraryManager.GetAlbumArtists(items); @@ -340,9 +347,13 @@ namespace MediaBrowser.Controller.Entities private QueryResult<BaseItem> GetMusicArtists(Folder parent, User user, InternalItemsQuery query) { - var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }) - .Where(i => !i.IsFolder) - .OfType<IHasArtist>(); + var items = _libraryManager.GetItemList(new InternalItemsQuery(user) + { + Recursive = true, + ParentId = parent.Id, + IncludeItemTypes = new[] { typeof(Audio.Audio).Name, typeof(MusicVideo).Name } + + }).Cast<IHasArtist>(); var artists = _libraryManager.GetArtists(items); @@ -351,9 +362,13 @@ namespace MediaBrowser.Controller.Entities private QueryResult<BaseItem> GetFavoriteArtists(Folder parent, User user, InternalItemsQuery query) { - var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }) - .Where(i => !i.IsFolder) - .OfType<IHasAlbumArtist>(); + var items = _libraryManager.GetItemList(new InternalItemsQuery(user) + { + Recursive = true, + ParentId = parent.Id, + IncludeItemTypes = new[] { typeof(Audio.Audio).Name } + + }).Cast<IHasAlbumArtist>(); var artists = _libraryManager.GetAlbumArtists(items).Where(i => _userDataManager.GetUserData(user, i).IsFavorite); @@ -448,7 +463,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -456,7 +470,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(Movie).Name, typeof(BoxSet).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List<BaseItem>(); @@ -613,7 +627,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -621,7 +634,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(Series).Name, typeof(Season).Name, typeof(Episode).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List<BaseItem>(); @@ -756,9 +769,9 @@ namespace MediaBrowser.Controller.Entities return PostFilterAndSort(items, queryParent, null, query, _libraryManager); } - public bool FilterItem(BaseItem item, InternalItemsQuery query) + public static bool FilterItem(BaseItem item, InternalItemsQuery query) { - return Filter(item, query.User, query, _userDataManager, _libraryManager); + return Filter(item, query.User, query, BaseItem.UserDataManager, BaseItem.LibraryManager); } private QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, @@ -1121,22 +1134,6 @@ namespace MediaBrowser.Controller.Entities bool? isVirtualUnaired, bool? isUnaired) { - if (isMissing.HasValue && isVirtualUnaired.HasValue) - { - if (!isMissing.Value && !isVirtualUnaired.Value) - { - return items.Where(i => - { - var e = i as Season; - if (e != null) - { - return !e.IsMissingOrVirtualUnaired; - } - return true; - }); - } - } - if (isMissing.HasValue) { var val = isMissing.Value; @@ -1145,7 +1142,7 @@ namespace MediaBrowser.Controller.Entities var e = i as Season; if (e != null) { - return (e.IsMissingSeason ?? false) == val; + return (e.IsMissingSeason) == val; } return true; }); @@ -1277,11 +1274,6 @@ namespace MediaBrowser.Controller.Entities return false; } - if (query.Filter != null && !query.Filter(item)) - { - return false; - } - UserItemData userData = null; if (query.IsLiked.HasValue) |
