aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/BaseItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index d8bb51003..252689b4a 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1939,6 +1939,36 @@ namespace MediaBrowser.Controller.Entities
return GetParents().Select(i => i.Id).Concat(LibraryManager.GetCollectionFolders(this).Select(i => i.Id));
}
+ public BaseItem GetTopParent()
+ {
+ if (IsTopParent)
+ {
+ return this;
+ }
+
+ return GetParents().FirstOrDefault(i => i.IsTopParent);
+ }
+
+ [IgnoreDataMember]
+ public virtual bool IsTopParent
+ {
+ get
+ {
+ if (GetParent() is AggregateFolder || this is Channel || this is BasePluginFolder)
+ {
+ return true;
+ }
+
+ var view = this as UserView;
+ if (view != null && string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+
+ return false;
+ }
+ }
+
[IgnoreDataMember]
public virtual bool SupportsAncestors
{