public void Filter(FilterCriteria criteria) { roomFlow.Children.ForEach(r => { if (criteria == null) { r.MatchingFilter = true; } else { bool matchingFilter = true; matchingFilter &= r.Room.Playlist.Count == 0 || r.Room.Playlist.Any(i => i.Ruleset.Value.Equals(criteria.Ruleset)); if (!string.IsNullOrEmpty(criteria.SearchString)) { matchingFilter &= r.FilterTerms.Any(term => term.Contains(criteria.SearchString, StringComparison.InvariantCultureIgnoreCase)); } r.MatchingFilter = matchingFilter; } }); }
private void applyFilterCriteria(FilterCriteria criteria) { roomFlow.Children.ForEach(r => { if (criteria == null) { r.MatchingFilter = true; } else { bool matchingFilter = true; matchingFilter &= criteria.Ruleset == null || r.Room.PlaylistItemStats.Value?.RulesetIDs.Any(id => id == criteria.Ruleset.OnlineID) != false; if (!string.IsNullOrEmpty(criteria.SearchString)) { matchingFilter &= r.FilterTerms.Any(term => term.Contains(criteria.SearchString, StringComparison.InvariantCultureIgnoreCase)); } r.MatchingFilter = matchingFilter; } }); }