private bool RequiresPostFiltering(InternalItemsQuery query) { if (LinkedChildren.Count > 0) { if (!(this is ICollectionFolder)) { Logger.Debug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name); return(true); } } if (query.SortBy != null && query.SortBy.Length > 0) { if (query.SortBy.Contains(ItemSortBy.AiredEpisodeOrder, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.AiredEpisodeOrder"); return(true); } if (query.SortBy.Contains(ItemSortBy.Budget, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.Budget"); return(true); } if (query.SortBy.Contains(ItemSortBy.GameSystem, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.GameSystem"); return(true); } if (query.SortBy.Contains(ItemSortBy.Metascore, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.Metascore"); return(true); } if (query.SortBy.Contains(ItemSortBy.Players, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.Players"); return(true); } if (query.SortBy.Contains(ItemSortBy.Revenue, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.Revenue"); return(true); } if (query.SortBy.Contains(ItemSortBy.VideoBitRate, StringComparer.OrdinalIgnoreCase)) { Logger.Debug("Query requires post-filtering due to ItemSortBy.VideoBitRate"); return(true); } } if (query.ItemIds.Length > 0) { Logger.Debug("Query requires post-filtering due to ItemIds"); return(true); } if (query.IsInBoxSet.HasValue) { Logger.Debug("Query requires post-filtering due to IsInBoxSet"); return(true); } // Filter by Video3DFormat if (query.Is3D.HasValue) { Logger.Debug("Query requires post-filtering due to Is3D"); return(true); } if (query.HasOfficialRating.HasValue) { Logger.Debug("Query requires post-filtering due to HasOfficialRating"); return(true); } if (query.IsPlaceHolder.HasValue) { Logger.Debug("Query requires post-filtering due to IsPlaceHolder"); return(true); } if (query.HasSpecialFeature.HasValue) { Logger.Debug("Query requires post-filtering due to HasSpecialFeature"); return(true); } if (query.HasSubtitles.HasValue) { Logger.Debug("Query requires post-filtering due to HasSubtitles"); return(true); } if (query.HasTrailer.HasValue) { Logger.Debug("Query requires post-filtering due to HasTrailer"); return(true); } // Filter by VideoType if (query.VideoTypes.Length > 0) { Logger.Debug("Query requires post-filtering due to VideoTypes"); return(true); } // Apply person filter if (query.ItemIdsFromPersonFilters != null) { Logger.Debug("Query requires post-filtering due to ItemIdsFromPersonFilters"); return(true); } if (query.MinPlayers.HasValue) { Logger.Debug("Query requires post-filtering due to MinPlayers"); return(true); } if (query.MaxPlayers.HasValue) { Logger.Debug("Query requires post-filtering due to MaxPlayers"); return(true); } if (UserViewBuilder.CollapseBoxSetItems(query, this, query.User, ConfigurationManager)) { Logger.Debug("Query requires post-filtering due to CollapseBoxSetItems"); return(true); } if (!string.IsNullOrWhiteSpace(query.AdjacentTo)) { Logger.Debug("Query requires post-filtering due to AdjacentTo"); return(true); } if (query.AirDays.Length > 0) { Logger.Debug("Query requires post-filtering due to AirDays"); return(true); } if (query.SeriesStatuses.Length > 0) { Logger.Debug("Query requires post-filtering due to SeriesStatuses"); return(true); } if (query.AiredDuringSeason.HasValue) { Logger.Debug("Query requires post-filtering due to AiredDuringSeason"); return(true); } if (!string.IsNullOrWhiteSpace(query.AlbumArtistStartsWithOrGreater)) { Logger.Debug("Query requires post-filtering due to AlbumArtistStartsWithOrGreater"); return(true); } if (query.IsPlayed.HasValue) { if (query.IncludeItemTypes.Length == 1 && query.IncludeItemTypes.Contains(typeof(Series).Name)) { Logger.Debug("Query requires post-filtering due to IsPlayed"); return(true); } } return(false); }
private bool RequiresPostFiltering(InternalItemsQuery query) { if (LinkedChildren.Count > 0) { if (!(this is ICollectionFolder)) { Logger.Debug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name); return(true); } } if (query.IsInBoxSet.HasValue) { Logger.Debug("Query requires post-filtering due to IsInBoxSet"); return(true); } // Filter by Video3DFormat if (query.Is3D.HasValue) { Logger.Debug("Query requires post-filtering due to Is3D"); return(true); } if (query.HasOfficialRating.HasValue) { Logger.Debug("Query requires post-filtering due to HasOfficialRating"); return(true); } if (query.IsPlaceHolder.HasValue) { Logger.Debug("Query requires post-filtering due to IsPlaceHolder"); return(true); } if (query.HasSpecialFeature.HasValue) { Logger.Debug("Query requires post-filtering due to HasSpecialFeature"); return(true); } if (query.HasSubtitles.HasValue) { Logger.Debug("Query requires post-filtering due to HasSubtitles"); return(true); } if (query.HasTrailer.HasValue) { Logger.Debug("Query requires post-filtering due to HasTrailer"); return(true); } // Filter by VideoType if (query.VideoTypes.Length > 0) { Logger.Debug("Query requires post-filtering due to VideoTypes"); return(true); } // Apply person filter if (query.ItemIdsFromPersonFilters != null) { Logger.Debug("Query requires post-filtering due to ItemIdsFromPersonFilters"); return(true); } if (UserViewBuilder.CollapseBoxSetItems(query, this, query.User, ConfigurationManager)) { Logger.Debug("Query requires post-filtering due to CollapseBoxSetItems"); return(true); } if (!string.IsNullOrWhiteSpace(query.AdjacentTo)) { Logger.Debug("Query requires post-filtering due to AdjacentTo"); return(true); } if (query.AirDays.Length > 0) { Logger.Debug("Query requires post-filtering due to AirDays"); return(true); } if (query.SeriesStatuses.Length > 0) { Logger.Debug("Query requires post-filtering due to SeriesStatuses"); return(true); } if (query.AiredDuringSeason.HasValue) { Logger.Debug("Query requires post-filtering due to AiredDuringSeason"); return(true); } if (query.IsPlayed.HasValue) { if (query.IncludeItemTypes.Length == 1 && query.IncludeItemTypes.Contains(typeof(Series).Name)) { Logger.Debug("Query requires post-filtering due to IsPlayed"); return(true); } } return(false); }