diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-07-29 23:31:35 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-07-29 23:31:35 -0400 |
| commit | 51e964dae394ae4a211482d562dbc28e79c00c3c (patch) | |
| tree | 8cc6f351eeb9ceb2343cd818e84b26a94f072a62 /MediaBrowser.Controller/Entities/UserView.cs | |
| parent | 063675bb07f78f99738a3ada061f3e2c16c9cda0 (diff) | |
support channels with dlna
Diffstat (limited to 'MediaBrowser.Controller/Entities/UserView.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserView.cs | 31 |
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 + } } |
