Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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) },