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)); }
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)); }
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)); }
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)); }
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)); }