diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-02-10 00:54:58 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-02-10 00:54:58 -0500 |
| commit | 0052f0a09dfacb062c5b372f0eb4734a5c653e4d (patch) | |
| tree | 0c09ccb4f017285ae9ab2c8a87ec59346d394824 /MediaBrowser.Server.Implementations/Session/SessionManager.cs | |
| parent | 3d7089a7dbabb652730c892206ca050f52f832b1 (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.cs | 19 |
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); |
