From 0052f0a09dfacb062c5b372f0eb4734a5c653e4d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 10 Feb 2015 00:54:58 -0500 Subject: create single method to form api url --- .../Session/SessionManager.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Session') diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index 308f46c23..a9488190c 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -904,9 +904,8 @@ namespace MediaBrowser.Server.Implementations.Session _libraryManager.RootFolder.GetRecursiveChildren(i => !i.IsFolder && itemFilter(i)) : user.RootFolder.GetRecursiveChildren(user, i => !i.IsFolder && itemFilter(i)); - items = items.OrderBy(i => i.SortName); - - return items; + return FilterToSingleMediaType(items) + .OrderBy(i => i.SortName); } if (item.IsFolder) @@ -917,14 +916,22 @@ namespace MediaBrowser.Server.Implementations.Session folder.GetRecursiveChildren(i => !i.IsFolder) : folder.GetRecursiveChildren(user, i => !i.IsFolder); - items = items.OrderBy(i => i.SortName); - - return items; + return FilterToSingleMediaType(items) + .OrderBy(i => i.SortName); } return new[] { item }; } + private IEnumerable FilterToSingleMediaType(IEnumerable items) + { + return items + .Where(i => !string.IsNullOrWhiteSpace(i.MediaType)) + .ToLookup(i => i.MediaType, StringComparer.OrdinalIgnoreCase) + .OrderByDescending(i => i.Count()) + .FirstOrDefault(); + } + private IEnumerable TranslateItemForInstantMix(string id, User user) { var item = _libraryManager.GetItemById(id); -- cgit v1.2.3