aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/Folder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/Folder.cs')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs32
1 files changed, 18 insertions, 14 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index d9c0b7bfe..4606a5dc7 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -199,8 +199,8 @@ namespace MediaBrowser.Controller.Entities
/// <returns>Dictionary{System.StringFunc{UserIEnumerable{BaseItem}}}.</returns>
protected virtual IEnumerable<string> GetIndexByOptions()
{
- return new List<string> {
- {"None"},
+ return new List<string> {
+ {"None"},
{"Performer"},
{"Genre"},
{"Director"},
@@ -1569,7 +1569,15 @@ namespace MediaBrowser.Controller.Entities
public override bool IsPlayed(User user)
{
- return GetRecursiveChildren(user, i => !i.IsFolder && i.LocationType != LocationType.Virtual)
+ var itemsResult = GetItems(new InternalItemsQuery(user)
+ {
+ Recursive = true,
+ IsFolder = false,
+ ExcludeLocationTypes = new[] { LocationType.Virtual }
+
+ }).Result;
+
+ return itemsResult.Items
.All(i => i.IsPlayed(user));
}
@@ -1613,19 +1621,15 @@ namespace MediaBrowser.Controller.Entities
double totalPercentPlayed = 0;
- IEnumerable<BaseItem> children;
- var folder = this;
+ var itemsResult = GetItems(new InternalItemsQuery(user)
+ {
+ Recursive = true,
+ IsFolder = false,
+ ExcludeLocationTypes = new[] { LocationType.Virtual }
- var season = folder as Season;
+ }).Result;
- if (season != null)
- {
- children = season.GetEpisodes(user).Where(i => i.LocationType != LocationType.Virtual);
- }
- else
- {
- children = folder.GetRecursiveChildren(user, i => !i.IsFolder && i.LocationType != LocationType.Virtual);
- }
+ var children = itemsResult.Items;
// Loop through each recursive child
foreach (var child in children)