diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-15 17:19:37 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-15 17:19:37 -0500 |
| commit | d0a5197c0aa9d44413366258b0ff81512ba2cba4 (patch) | |
| tree | a810ab454ebe9ef86051c59bf04a88b25966bd0f /MediaBrowser.Controller | |
| parent | 98b6046f04b2732315b882cf65a1f2e3cbea65ab (diff) | |
support recursive played filter
Diffstat (limited to 'MediaBrowser.Controller')
| -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 c887f69779..0fc4f10f19 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 6fb99f547a..119b4dd7e0 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)); + } } } |
