diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index c887f6977..0fc4f10f1 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -167,6 +167,7 @@ namespace MediaBrowser.Controller.Entities public static ILocalizationManager LocalizationManager { get; set; } public static IItemRepository ItemRepository { get; set; } public static IFileSystem FileSystem { get; set; } + public static IUserDataManager UserDataManager { get; set; } /// <summary> /// Returns a <see cref="System.String" /> that represents this instance. @@ -1705,5 +1706,12 @@ namespace MediaBrowser.Controller.Entities // Directory watchers should repeat this, but do a quick refresh first return RefreshMetadata(CancellationToken.None, forceSave: true, allowSlowProviders: false); } + + public virtual bool IsPlayed(User user) + { + var userdata = UserDataManager.GetUserData(user.Id, GetUserDataKey()); + + return userdata != null && userdata.Played; + } } } diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 6fb99f547..119b4dd7e 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -1084,5 +1084,10 @@ namespace MediaBrowser.Controller.Entities } }); } + + public override bool IsPlayed(User user) + { + return GetRecursiveChildren(user).Where(i => !i.IsFolder).All(i => i.IsPlayed(user)); + } } } |
