public async Task <IEnumerable <Film> > GetMediaAsync(FilmFilterParameters filterParameters, bool reload = false)
        {
            if (reload || _filmsCache == null)
            {
                _filmsCache = (await _filmProvider.GetFilmsAsync())?.ToList();
            }

            if (_filmsCache == null || !_filmsCache.Any())
            {
                return(Enumerable.Empty <Film>());
            }

            var results = _filmsCache.Select(x => x).ToList();

            FilterUniversalMediaAttributes(results, filterParameters);

            if (!string.IsNullOrEmpty(filterParameters.Director))
            {
                results.RemoveAll(x => NoFilmDirectorsMatchFilter(filterParameters, x));
            }

            return(results);
        }