public async Task <IEnumerable <TelevisionSeries> > GetMediaAsync(TelevisionSeriesFilterParameters filterParameters, bool reload = false) { if (reload || _televisionSeriesCache == null) { _televisionSeriesCache = (await _televisionSeriesProvider.GetTelevisionSeriesAsync())?.ToList(); } if (_televisionSeriesCache == null || !_televisionSeriesCache.Any()) { return(Enumerable.Empty <TelevisionSeries>()); } var results = _televisionSeriesCache.Select(x => x).ToList(); FilterUniversalMediaAttributes(results, filterParameters); if (!string.IsNullOrEmpty(filterParameters.Creator)) { results.RemoveAll(x => NoCreatorsMatchFilter(filterParameters, x)); } return(results); }
private static bool NoCreatorsMatchFilter(TelevisionSeriesFilterParameters filterParameters, TelevisionSeries televisionSeries) { return(!televisionSeries.Creators.Any(director => director.ToLowerInvariant().Contains(filterParameters.Creator.ToLowerInvariant()))); }