private TSpec Get <TSpec>(Series series, List <Episode> episodes) where TSpec : SearchCriteriaBase, new() { var spec = new TSpec(); spec.Series = series; spec.SceneTitles = _sceneMapping.GetSceneNamesBySeasonNumbers(series.TvdbId, episodes.Select(e => e.SeasonNumber)) .Concat(_sceneMapping.GetSceneNamesBySceneSeasonNumbers(series.TvdbId, episodes.Where(v => v.SceneSeasonNumber.HasValue) .Select(e => e.SceneSeasonNumber.Value))) .Distinct() .ToList(); spec.Episodes = episodes; spec.SceneTitles.Add(series.Title); return(spec); }