aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/UserView.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-29 23:31:35 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-29 23:31:35 -0400
commit51e964dae394ae4a211482d562dbc28e79c00c3c (patch)
tree8cc6f351eeb9ceb2343cd818e84b26a94f072a62 /MediaBrowser.Controller/Entities/UserView.cs
parent063675bb07f78f99738a3ada061f3e2c16c9cda0 (diff)
support channels with dlna
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserView.cs')
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs
index 619a497f5..be426d99e 100644
--- a/MediaBrowser.Controller/Entities/UserView.cs
+++ b/MediaBrowser.Controller/Entities/UserView.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
+using MoreLinq;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -29,6 +30,10 @@ namespace MediaBrowser.Controller.Entities
case CollectionType.Trailers:
return mediaFolders.SelectMany(i => i.GetRecursiveChildren(user, includeLinkedChildren))
.OfType<Trailer>();
+ case CollectionType.Movies:
+ return mediaFolders.SelectMany(i => i.GetRecursiveChildren(user, includeLinkedChildren))
+ .Where(i => i is Movie || i is BoxSet)
+ .DistinctBy(i => i.Id);
default:
return mediaFolders.SelectMany(i => i.GetChildren(user, includeLinkedChildren));
}
@@ -70,4 +75,30 @@ namespace MediaBrowser.Controller.Entities
return standaloneTypes.Contains(collectionFolder.CollectionType ?? string.Empty);
}
}
+
+ public class SpecialFolder : Folder
+ {
+ public SpecialFolderType SpecialFolderType { get; set; }
+ public string ItemTypeName { get; set; }
+ public string ParentId { get; set; }
+
+ public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
+ {
+ var parent = (Folder)LibraryManager.GetItemById(new Guid(ParentId));
+
+ if (SpecialFolderType == SpecialFolderType.ItemsByType)
+ {
+ var items = parent.GetRecursiveChildren(user, includeLinkedChildren);
+
+ return items.Where(i => string.Equals(i.GetType().Name, ItemTypeName, StringComparison.OrdinalIgnoreCase));
+ }
+
+ return new List<BaseItem>();
+ }
+ }
+
+ public enum SpecialFolderType
+ {
+ ItemsByType = 1
+ }
}