aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs28
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs7
2 files changed, 34 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index fca2c6e43..f57e2fa17 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1578,8 +1578,36 @@ namespace MediaBrowser.Controller.Entities
return !IsPlayed(user);
}
+ [IgnoreDataMember]
+ public virtual bool SupportsUserDataFromChildren
+ {
+ get
+ {
+ // These are just far too slow.
+ if (this is ICollectionFolder)
+ {
+ return false;
+ }
+ if (this is UserView)
+ {
+ return false;
+ }
+ if (this is UserRootFolder)
+ {
+ return false;
+ }
+
+ return true;
+ }
+ }
+
public override void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, User user)
{
+ if (!SupportsUserDataFromChildren)
+ {
+ return;
+ }
+
var recursiveItemCount = 0;
var unplayed = 0;
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index 1f443071c..29db5fd55 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -125,10 +125,15 @@ namespace MediaBrowser.Controller.Entities.TV
get { return LocationType == LocationType.Virtual && GetEpisodes().All(i => i.IsMissingEpisode); }
}
+ private bool GetIsUnaired()
+ {
+ return GetEpisodes().All(i => i.IsUnaired);
+ }
+
[IgnoreDataMember]
public bool IsUnaired
{
- get { return GetEpisodes().All(i => i.IsUnaired); }
+ get { return GetIsUnaired(); }
}
[IgnoreDataMember]