public ParsedEpisodeInfo ParseSpecialEpisodeTitle(string title, int tvRageId, SearchCriteriaBase searchCriteria = null) { if (searchCriteria != null) { var tvdbId = _sceneMappingService.GetTvDbId(title); if (tvdbId.HasValue) { if (searchCriteria.Series.TvdbId == tvdbId) { return(ParseSpecialEpisodeTitle(title, searchCriteria.Series)); } } if (tvRageId == searchCriteria.Series.TvRageId) { return(ParseSpecialEpisodeTitle(title, searchCriteria.Series)); } } var series = _seriesService.FindByTitleInexact(title); if (series == null && tvRageId > 0) { series = _seriesService.FindByTvRageId(tvRageId); } if (series == null) { _logger.Debug("No matching series {0}", title); return(null); } return(ParseSpecialEpisodeTitle(title, series)); }
private Series GetSeries(ParsedEpisodeInfo parsedEpisodeInfo, int tvRageId, SearchCriteriaBase searchCriteria) { var tvdbId = _sceneMappingService.GetTvDbId(parsedEpisodeInfo.SeriesTitle); if (tvdbId.HasValue) { if (searchCriteria.Series.TvdbId == tvdbId) { return(searchCriteria.Series); } } if (parsedEpisodeInfo.SeriesTitle.CleanSeriesTitle() == searchCriteria.Series.CleanTitle) { return(searchCriteria.Series); } if (tvRageId == searchCriteria.Series.TvRageId) { //TODO: If series is found by TvRageId, we should report it as a scene naming exception, since it will fail to import return(searchCriteria.Series); } return(GetSeries(parsedEpisodeInfo, tvRageId)); }
public Series FindByTitle(string title) { var tvdbId = _sceneMappingService.GetTvDbId(title); if (tvdbId.HasValue) { return(FindByTvdbId(tvdbId.Value)); } return(_seriesRepository.FindByTitle(title.CleanSeriesTitle())); }