aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/UserView.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserView.cs')
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs51
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
- }
}