aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Session/SessionManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-10 00:54:58 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-10 00:54:58 -0500
commit0052f0a09dfacb062c5b372f0eb4734a5c653e4d (patch)
tree0c09ccb4f017285ae9ab2c8a87ec59346d394824 /MediaBrowser.Server.Implementations/Session/SessionManager.cs
parent3d7089a7dbabb652730c892206ca050f52f832b1 (diff)
create single method to form api url
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/SessionManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs19
1 files changed, 13 insertions, 6 deletions
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<BaseItem> FilterToSingleMediaType(IEnumerable<BaseItem> items)
+ {
+ return items
+ .Where(i => !string.IsNullOrWhiteSpace(i.MediaType))
+ .ToLookup(i => i.MediaType, StringComparer.OrdinalIgnoreCase)
+ .OrderByDescending(i => i.Count())
+ .FirstOrDefault();
+ }
+
private IEnumerable<BaseItem> TranslateItemForInstantMix(string id, User user)
{
var item = _libraryManager.GetItemById(id);