예제 #1
0
        public override async Task <QueryResult <BaseItem> > GetUserItems(UserItemsQuery query)
        {
            var result = await UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId = query.User.Id.ToString("N")
            }, CancellationToken.None).ConfigureAwait(false);

            return(SortAndFilter(result, query));
        }
예제 #2
0
        protected override QueryResult <BaseItem> GetItemsInternal(InternalItemsQuery query)
        {
            if (query.Recursive)
            {
                return(QueryRecursive(query));
            }

            var result = UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId      = query.User.Id,
                PresetViews = query.PresetViews
            });

            return(UserViewBuilder.SortAndPage(result, null, query, LibraryManager, true));
        }
예제 #3
0
        public override async Task <QueryResult <BaseItem> > GetItems(InternalItemsQuery query)
        {
            if (query.Recursive)
            {
                var items = query.User.RootFolder.GetRecursiveChildren(query.User);
                return(SortAndFilter(items, query));
            }

            var result = await UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId = query.User.Id.ToString("N")
            }, CancellationToken.None).ConfigureAwait(false);

            return(SortAndFilter(result, query));
        }
예제 #4
0
        public override async Task <QueryResult <BaseItem> > GetItems(InternalItemsQuery query)
        {
            var user = query.User;
            Func <BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);

            if (query.Recursive)
            {
                var items = query.User.RootFolder.GetRecursiveChildren(query.User, filter);
                return(PostFilterAndSort(items, query));
            }

            var result = await UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId = query.User.Id.ToString("N")
            }, CancellationToken.None).ConfigureAwait(false);

            return(PostFilterAndSort(result.Where(filter), query));
        }
예제 #5
0
        protected override async Task <QueryResult <BaseItem> > GetItemsInternal(InternalItemsQuery query)
        {
            if (query.Recursive)
            {
                return(QueryRecursive(query));
            }

            var result = await UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId      = query.User.Id.ToString("N"),
                PresetViews = query.PresetViews
            }, CancellationToken.None).ConfigureAwait(false);

            var user = query.User;
            Func <BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);

            return(PostFilterAndSort(result.Where(filter), query));
        }
예제 #6
0
        protected override QueryResult <BaseItem> GetItemsInternal(InternalItemsQuery query)
        {
            if (query.Recursive)
            {
                return(QueryRecursive(query));
            }

            var result = UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId      = query.User.Id,
                PresetViews = query.PresetViews
            });

            var itemsArray = result;
            var totalCount = itemsArray.Length;

            return(new QueryResult <BaseItem>
            {
                TotalRecordCount = totalCount,
                Items = itemsArray
            });
        }
예제 #7
0
        protected override QueryResult <BaseItem> GetItemsInternal(InternalItemsQuery query)
        {
            if (query.Recursive)
            {
                return(QueryRecursive(query));
            }

            var result = UserViewManager.GetUserViews(new UserViewQuery
            {
                UserId      = query.User.Id,
                PresetViews = query.PresetViews
            });

            var itemsArray = result;
            var totalCount = itemsArray.Length;

            return(new QueryResult <BaseItem>
            {
                TotalRecordCount = totalCount,
                Items = itemsArray //TODO Fix The co-variant conversion between Folder[] and BaseItem[], this can generate runtime issues.
            });
        }