diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserView.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserView.cs | 51 |
1 files changed, 16 insertions, 35 deletions
diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index 9b26ce23c..0364ff678 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -3,7 +3,6 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; namespace MediaBrowser.Controller.Entities @@ -13,17 +12,26 @@ namespace MediaBrowser.Controller.Entities public string ViewType { get; set; } public Guid ParentId { get; set; } + public Guid? UserId { get; set; } + public static ITVSeriesManager TVSeriesManager; - public override Task<QueryResult<BaseItem>> GetUserItems(UserItemsQuery query) + public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query) { - return new UserViewBuilder(UserViewManager, LiveTvManager, ChannelManager, LibraryManager, Logger, UserDataManager, TVSeriesManager) - .GetUserItems(this, ViewType, query); + var parent = this as Folder; + + if (ParentId != Guid.Empty) + { + parent = LibraryManager.GetItemById(ParentId) as Folder ?? parent; + } + + return new UserViewBuilder(UserViewManager, LiveTvManager, ChannelManager, LibraryManager, Logger, UserDataManager, TVSeriesManager, CollectionManager) + .GetUserItems(parent, this, ViewType, query); } public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) { - var result = GetUserItems(new UserItemsQuery + var result = GetItems(new InternalItemsQuery { User = user @@ -34,7 +42,7 @@ namespace MediaBrowser.Controller.Entities public override IEnumerable<BaseItem> GetRecursiveChildren(User user, bool includeLinkedChildren = true) { - var result = GetUserItems(new UserItemsQuery + var result = GetItems(new InternalItemsQuery { User = user, Recursive = true @@ -53,14 +61,13 @@ namespace MediaBrowser.Controller.Entities { var standaloneTypes = new List<string> { - CollectionType.AdultVideos, CollectionType.Books, CollectionType.HomeVideos, CollectionType.Photos, - CollectionType.Trailers + string.Empty }; - var collectionFolder = folder as CollectionFolder; + var collectionFolder = folder as ICollectionFolder; if (collectionFolder == null) { @@ -70,30 +77,4 @@ namespace MediaBrowser.Controller.Entities return standaloneTypes.Contains(collectionFolder.CollectionType ?? string.Empty); } } - - public class SpecialFolder : Folder - { - public SpecialFolderType SpecialFolderType { get; set; } - public string ItemTypeName { get; set; } - public string ParentId { get; set; } - - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) - { - var parent = (Folder)LibraryManager.GetItemById(new Guid(ParentId)); - - if (SpecialFolderType == SpecialFolderType.ItemsByType) - { - var items = parent.GetRecursiveChildren(user, includeLinkedChildren); - - return items.Where(i => string.Equals(i.GetType().Name, ItemTypeName, StringComparison.OrdinalIgnoreCase)); - } - - return new List<BaseItem>(); - } - } - - public enum SpecialFolderType - { - ItemsByType = 1 - } } |
