diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-22 13:25:54 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-22 13:25:54 -0400 |
| commit | 54eb7cb85537ef6959e3f1fab7871361b9bf8243 (patch) | |
| tree | 581c3f120c09c0acc2856c5fc684d00c467e5aa8 /MediaBrowser.Api/UserLibrary/ItemsService.cs | |
| parent | 4331700747440cfa2c2df0cea1abcace9ed60019 (diff) | |
update dlna profiles
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 160 |
1 files changed, 134 insertions, 26 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index c5d0a621d..74ce4a0a7 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Collections; +using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; @@ -257,26 +258,28 @@ namespace MediaBrowser.Api.UserLibrary /// The _library manager /// </summary> private readonly ILibraryManager _libraryManager; - private readonly ISearchEngine _searchEngine; private readonly ILocalizationManager _localization; private readonly IDtoService _dtoService; + private readonly ICollectionManager _collectionManager; /// <summary> /// Initializes a new instance of the <see cref="ItemsService" /> class. /// </summary> /// <param name="userManager">The user manager.</param> /// <param name="libraryManager">The library manager.</param> - /// <param name="searchEngine">The search engine.</param> /// <param name="userDataRepository">The user data repository.</param> - public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ISearchEngine searchEngine, IUserDataManager userDataRepository, ILocalizationManager localization, IDtoService dtoService) + /// <param name="localization">The localization.</param> + /// <param name="dtoService">The dto service.</param> + /// <param name="collectionManager">The collection manager.</param> + public ItemsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, ILocalizationManager localization, IDtoService dtoService, ICollectionManager collectionManager) { _userManager = userManager; _libraryManager = libraryManager; - _searchEngine = searchEngine; _userDataRepository = userDataRepository; _localization = localization; _dtoService = dtoService; + _collectionManager = collectionManager; } /// <summary> @@ -319,7 +322,7 @@ namespace MediaBrowser.Api.UserLibrary if (CollapseBoxSetItems(request)) { - items = CollapseItemsWithinBoxSets(items, user); + items = _collectionManager.CollapseItemsWithinBoxSets(items, user); } items = ApplySortOrder(request, items, user, _libraryManager); @@ -1245,38 +1248,143 @@ namespace MediaBrowser.Api.UserLibrary return false; } - private IEnumerable<BaseItem> CollapseItemsWithinBoxSets(IEnumerable<BaseItem> items, User user) + private bool AllowBoxSetCollapsing(GetItems request) { - var itemsToCollapse = new List<ISupportsBoxSetGrouping>(); - var boxsets = new List<BaseItem>(); + if (!string.IsNullOrWhiteSpace(request.Filters)) + { + return false; + } - var list = items.ToList(); + if (!string.IsNullOrWhiteSpace(request.AllGenres)) + { + return false; + } - foreach (var item in list.OfType<ISupportsBoxSetGrouping>()) + if (!string.IsNullOrWhiteSpace(request.Genres)) { - var currentBoxSets = item.BoxSetIdList - .Select(i => _libraryManager.GetItemById(i)) - .Where(i => i != null && i.IsVisible(user)) - .ToList(); + return false; + } - if (currentBoxSets.Count > 0) - { - itemsToCollapse.Add(item); - boxsets.AddRange(currentBoxSets); - } + if (request.HasImdbId.HasValue) + { + return false; } - return list.Except(itemsToCollapse.Cast<BaseItem>()).Concat(boxsets).Distinct(); - } + if (request.HasOfficialRating.HasValue) + { + return false; + } - private bool AllowBoxSetCollapsing(GetItems request) - { - // Only allow when using default sort order - if (!string.IsNullOrEmpty(request.SortBy) && !string.Equals(request.SortBy, "SortName", StringComparison.OrdinalIgnoreCase)) + if (request.HasOverview.HasValue) { return false; } + if (request.HasParentalRating.HasValue) + { + return false; + } + + if (request.HasSpecialFeature.HasValue) + { + return false; + } + + if (request.HasSubtitles.HasValue) + { + return false; + } + + if (request.HasThemeSong.HasValue) + { + return false; + } + + if (request.HasThemeVideo.HasValue) + { + return false; + } + + if (request.HasTmdbId.HasValue) + { + return false; + } + + if (request.HasTrailer.HasValue) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.Ids)) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.ImageTypes)) + { + return false; + } + + if (request.Is3D.HasValue) + { + return false; + } + + if (request.IsHD.HasValue) + { + return false; + } + + if (request.IsInBoxSet.HasValue) + { + return false; + } + + if (request.IsLocked.HasValue) + { + return false; + } + + if (request.IsPlaceHolder.HasValue) + { + return false; + } + + if (request.IsPlayed.HasValue) + { + return false; + } + + if (request.IsUnidentified.HasValue) + { + return false; + } + + if (request.IsYearMismatched.HasValue) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.Person)) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.Studios)) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.VideoTypes)) + { + return false; + } + + if (!string.IsNullOrWhiteSpace(request.Years)) + { + return false; + } + return true; } |
