public object Get(GetResumeItems request) { var user = _userManager.GetUserById(request.UserId); var parentIdGuid = string.IsNullOrWhiteSpace(request.ParentId) ? Guid.Empty : new Guid(request.ParentId); var options = GetDtoOptions(_authContext, request); var ancestorIds = new List <Guid>(); var excludeFolderIds = user.Configuration.LatestItemsExcludes; if (parentIdGuid.Equals(Guid.Empty) && excludeFolderIds.Length > 0) { ancestorIds = _libraryManager.GetUserRootFolder().GetChildren(user, true) .Where(i => i is Folder) .Where(i => !excludeFolderIds.Contains(i.Id.ToString("N"))) .Select(i => i.Id) .ToList(); } var itemsResult = _libraryManager.GetItemsResult(new InternalItemsQuery(user) { OrderBy = new[] { ItemSortBy.DatePlayed }.Select(i => new ValueTuple <string, SortOrder>(i, SortOrder.Descending)).ToArray(), IsResumable = true, StartIndex = request.StartIndex, Limit = request.Limit, ParentId = parentIdGuid, Recursive = true, DtoOptions = options, MediaTypes = request.GetMediaTypes(), IsVirtualItem = false, CollapseBoxSetItems = false, EnableTotalRecordCount = request.EnableTotalRecordCount, AncestorIds = ancestorIds.ToArray(), IncludeItemTypes = request.GetIncludeItemTypes(), ExcludeItemTypes = request.GetExcludeItemTypes(), SearchTerm = request.SearchTerm }); var returnItems = _dtoService.GetBaseItemDtos(itemsResult.Items, options, user); var result = new QueryResult <BaseItemDto> { TotalRecordCount = itemsResult.TotalRecordCount, Items = returnItems }; return(ToOptimizedResult(result)); }
public object Get(GetResumeItems request) { var user = _userManager.GetUserById(request.UserId); var parentIdGuid = string.IsNullOrWhiteSpace(request.ParentId) ? Guid.Empty : new Guid(request.ParentId); var options = GetDtoOptions(_authContext, request); var ancestorIds = Array.Empty<Guid>(); var excludeFolderIds = user.Configuration.LatestItemsExcludes; if (parentIdGuid.Equals(Guid.Empty) && excludeFolderIds.Length > 0) { ancestorIds = _libraryManager.GetUserRootFolder().GetChildren(user, true) .Where(i => i is Folder) .Where(i => !excludeFolderIds.Contains(i.Id.ToString("N"))) .Select(i => i.Id) .ToArray(); } var itemsResult = _libraryManager.GetItemsResult(new InternalItemsQuery(user) { OrderBy = new[] { (ItemSortBy.DatePlayed, SortOrder.Descending) },