diff options
| author | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
|---|---|---|
| committer | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
| commit | 48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch) | |
| tree | 8dae77a31670a888d733484cb17dd4077d5444e8 /MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs | |
| parent | c32d8656382a0eacb301692e0084377fc433ae9b (diff) | |
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs | 167 |
1 files changed, 20 insertions, 147 deletions
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index ed0c4069b..fe8b446a1 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -56,10 +56,10 @@ namespace MediaBrowser.Api.UserLibrary { BaseItem parentItem; - if (!string.IsNullOrWhiteSpace(request.UserId)) + if (!request.UserId.Equals(Guid.Empty)) { var user = UserManager.GetUserById(request.UserId); - parentItem = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : LibraryManager.GetItemById(request.ParentId); + parentItem = string.IsNullOrEmpty(request.ParentId) ? LibraryManager.GetUserRootFolder() : LibraryManager.GetItemById(request.ParentId); } else { @@ -73,18 +73,12 @@ namespace MediaBrowser.Api.UserLibrary { var parent = GetParentItem(request); - var collectionFolder = parent as ICollectionFolder; + var collectionFolder = parent as IHasCollectionType; if (collectionFolder != null) { return collectionFolder.CollectionType; } - var view = parent as UserView; - if (view != null) - { - return view.ViewType; - } - return null; } @@ -95,10 +89,10 @@ namespace MediaBrowser.Api.UserLibrary User user = null; BaseItem parentItem; - if (!string.IsNullOrWhiteSpace(request.UserId)) + if (!request.UserId.Equals(Guid.Empty)) { user = UserManager.GetUserById(request.UserId); - parentItem = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : LibraryManager.GetItemById(request.ParentId); + parentItem = string.IsNullOrEmpty(request.ParentId) ? LibraryManager.GetUserRootFolder() : LibraryManager.GetItemById(request.ParentId); } else { @@ -123,25 +117,27 @@ namespace MediaBrowser.Api.UserLibrary Tags = request.GetTags(), OfficialRatings = request.GetOfficialRatings(), Genres = request.GetGenres(), - GenreIds = request.GetGenreIds(), - StudioIds = request.GetStudioIds(), + GenreIds = GetGuids(request.GenreIds), + StudioIds = GetGuids(request.StudioIds), Person = request.Person, - PersonIds = request.GetPersonIds(), + PersonIds = GetGuids(request.PersonIds), PersonTypes = request.GetPersonTypes(), Years = request.GetYears(), MinCommunityRating = request.MinCommunityRating, - DtoOptions = dtoOptions + DtoOptions = dtoOptions, + SearchTerm = request.SearchTerm, + EnableTotalRecordCount = request.EnableTotalRecordCount }; if (!string.IsNullOrWhiteSpace(request.ParentId)) { if (parentItem is Folder) { - query.AncestorIds = new[] { request.ParentId }; + query.AncestorIds = new[] { new Guid(request.ParentId) }; } else { - query.ItemIds = new[] { request.ParentId }; + query.ItemIds = new[] { new Guid(request.ParentId) }; } } @@ -158,7 +154,7 @@ namespace MediaBrowser.Api.UserLibrary { return null; } - }).Where(i => i != null).Select(i => i.Id.ToString("N")).ToArray(); + }).Where(i => i != null).Select(i => i.Id).ToArray(); } foreach (var filter in request.GetFilters()) @@ -197,10 +193,9 @@ namespace MediaBrowser.Api.UserLibrary var result = GetItems(request, query); - var syncProgess = DtoService.GetSyncedItemProgress(dtoOptions); var dtos = result.Items.Select(i => { - var dto = DtoService.GetItemByNameDto(i.Item1, dtoOptions, null, syncProgess, user); + var dto = DtoService.GetItemByNameDto(i.Item1, dtoOptions, null, user); if (!string.IsNullOrWhiteSpace(request.IncludeItemTypes)) { @@ -247,10 +242,10 @@ namespace MediaBrowser.Api.UserLibrary User user = null; BaseItem parentItem; - if (!string.IsNullOrWhiteSpace(request.UserId)) + if (!request.UserId.Equals(Guid.Empty)) { user = UserManager.GetUserById(request.UserId); - parentItem = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : LibraryManager.GetItemById(request.ParentId); + parentItem = string.IsNullOrEmpty(request.ParentId) ? LibraryManager.GetUserRootFolder() : LibraryManager.GetItemById(request.ParentId); } else { @@ -277,7 +272,7 @@ namespace MediaBrowser.Api.UserLibrary { var folder = (Folder)parentItem; - if (!string.IsNullOrWhiteSpace(request.UserId)) + if (!request.UserId.Equals(Guid.Empty)) { items = request.Recursive ? folder.GetRecursiveChildren(user, query).ToList() : @@ -297,9 +292,7 @@ namespace MediaBrowser.Api.UserLibrary var extractedItems = GetAllItems(request, items); - var filteredItems = FilterItems(request, extractedItems, user); - - filteredItems = LibraryManager.Sort(filteredItems, user, request.GetOrderBy()); + var filteredItems = LibraryManager.Sort(extractedItems, user, request.GetOrderBy()); var ibnItemsArray = filteredItems.ToList(); @@ -326,8 +319,7 @@ namespace MediaBrowser.Api.UserLibrary var tuples = ibnItems.Select(i => new Tuple<BaseItem, List<BaseItem>>(i, new List<BaseItem>())); - var syncProgess = DtoService.GetSyncedItemProgress(dtoOptions); - var dtos = tuples.Select(i => DtoService.GetItemByNameDto(i.Item1, dtoOptions, i.Item2, syncProgess, user)); + var dtos = tuples.Select(i => DtoService.GetItemByNameDto(i.Item1, dtoOptions, i.Item2, user)); result.Items = dtos.Where(i => i != null).ToArray(); @@ -338,125 +330,6 @@ namespace MediaBrowser.Api.UserLibrary /// Filters the items. /// </summary> /// <param name="request">The request.</param> - /// <param name="items">The items.</param> - /// <param name="user">The user.</param> - /// <returns>IEnumerable{`0}.</returns> - private IEnumerable<BaseItem> FilterItems(GetItemsByName request, IEnumerable<BaseItem> items, User user) - { - if (!string.IsNullOrEmpty(request.NameStartsWithOrGreater)) - { - items = items.Where(i => string.Compare(request.NameStartsWithOrGreater, i.SortName, StringComparison.CurrentCultureIgnoreCase) < 1); - } - if (!string.IsNullOrEmpty(request.NameStartsWith)) - { - items = items.Where(i => string.Compare(request.NameStartsWith, i.SortName.Substring(0, 1), StringComparison.CurrentCultureIgnoreCase) == 0); - } - - if (!string.IsNullOrEmpty(request.NameLessThan)) - { - items = items.Where(i => string.Compare(request.NameLessThan, i.SortName, StringComparison.CurrentCultureIgnoreCase) == 1); - } - - var imageTypes = request.GetImageTypes(); - if (imageTypes.Length > 0) - { - items = items.Where(item => imageTypes.Any(item.HasImage)); - } - - var filters = request.GetFilters(); - - if (filters.Contains(ItemFilter.Dislikes)) - { - items = items.Where(i => - { - var userdata = UserDataRepository.GetUserData(user, i); - - return userdata != null && userdata.Likes.HasValue && !userdata.Likes.Value; - }); - } - - if (filters.Contains(ItemFilter.Likes)) - { - items = items.Where(i => - { - var userdata = UserDataRepository.GetUserData(user, i); - - return userdata != null && userdata.Likes.HasValue && userdata.Likes.Value; - }); - } - - if (filters.Contains(ItemFilter.IsFavoriteOrLikes)) - { - items = items.Where(i => - { - var userdata = UserDataRepository.GetUserData(user, i); - - var likes = userdata.Likes ?? false; - var favorite = userdata.IsFavorite; - - return likes || favorite; - }); - } - - if (filters.Contains(ItemFilter.IsFavorite)) - { - items = items.Where(i => - { - var userdata = UserDataRepository.GetUserData(user, i); - - return userdata != null && userdata.IsFavorite; - }); - } - - // Avoid implicitly captured closure - var currentRequest = request; - return items.Where(i => ApplyAdditionalFilters(currentRequest, i, user, false)); - } - - private bool ApplyAdditionalFilters(BaseItemsRequest request, BaseItem i, User user, bool isPreFiltered) - { - if (!isPreFiltered) - { - // Apply tag filter - var tags = request.GetTags(); - if (tags.Length > 0) - { - if (!tags.Any(v => i.Tags.Contains(v, StringComparer.OrdinalIgnoreCase))) - { - return false; - } - } - - // Apply official rating filter - var officialRatings = request.GetOfficialRatings(); - if (officialRatings.Length > 0 && !officialRatings.Contains(i.OfficialRating ?? string.Empty)) - { - return false; - } - - // Apply genre filter - var genres = request.GetGenres(); - if (genres.Length > 0 && !genres.Any(v => i.Genres.Contains(v, StringComparer.OrdinalIgnoreCase))) - { - return false; - } - - // Apply year filter - var years = request.GetYears(); - if (years.Length > 0 && !(i.ProductionYear.HasValue && years.Contains(i.ProductionYear.Value))) - { - return false; - } - } - - return true; - } - - - /// <summary> - /// Filters the items. - /// </summary> - /// <param name="request">The request.</param> /// <param name="f">The f.</param> /// <param name="excludeItemTypes">The exclude item types.</param> /// <param name="includeItemTypes">The include item types.</param> |
