diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 28 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Season.cs | 7 |
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] |
