Ejemplo n.º 1
0
        public override Task <QueryResult <BaseItem> > GetItems(InternalItemsQuery query)
        {
            var user = query.User;

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

            IEnumerable <BaseItem> items;

            if (query.User == null)
            {
                items = query.Recursive
                   ? GetRecursiveChildren(filter)
                   : Children.Where(filter);
            }
            else
            {
                items = query.Recursive
                   ? GetRecursiveChildren(user, filter)
                   : GetSeasons(user).Where(filter);
            }

            var result = PostFilterAndSort(items, query);

            return(Task.FromResult(result));
        }
Ejemplo n.º 2
0
        protected override Task <QueryResult <BaseItem> > GetItemsInternal(InternalItemsQuery query)
        {
            if (query.User == null)
            {
                return(base.GetItemsInternal(query));
            }

            var user = query.User;

            if (query.Recursive)
            {
                query.AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this);
                if (query.SortBy.Length == 0)
                {
                    query.SortBy = new[] { ItemSortBy.SortName };
                }
                if (query.IncludeItemTypes.Length == 0)
                {
                    query.IncludeItemTypes = new[] { typeof(Episode).Name, typeof(Season).Name };
                }
                query.IsVirtualItem = false;
                return(Task.FromResult(LibraryManager.GetItemsResult(query)));
            }

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

            var items  = GetSeasons(user).Where(filter);
            var result = PostFilterAndSort(items, query);

            return(Task.FromResult(result));
        }
Ejemplo n.º 3
0
        protected override QueryResult <BaseItem> GetItemsInternal(InternalItemsQuery query)
        {
            if (query.User == null)
            {
                return(base.GetItemsInternal(query));
            }

            var user = query.User;

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

            var items = GetEpisodes(user, query.DtoOptions).Where(filter);

            return(PostFilterAndSort(items, query, false));
        }
Ejemplo n.º 4
0
        protected override Task <QueryResult <BaseItem> > GetItemsInternal(InternalItemsQuery query)
        {
            if (query.User == null)
            {
                return(base.GetItemsInternal(query));
            }

            var user = query.User;

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

            var items = GetEpisodes(user).Where(filter);

            var result = PostFilterAndSort(items, query);

            return(Task.FromResult(result));
        }
Ejemplo n.º 5
0
        protected override QueryResult <BaseItem> GetItemsInternal(InternalItemsQuery query)
        {
            if (query.User == null)
            {
                return(base.GetItemsInternal(query));
            }

            var user = query.User;

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

            var items = GetEpisodes(user, query.DtoOptions).Where(filter);

            var enablePostSorting = query.OrderBy.Length > 0 && !string.Equals(query.OrderBy[0].Item1, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase);

            return(PostFilterAndSort(items, query, enablePostSorting));
        }