public CollectedEpisode CollectEpisodeData(FileInfo file) { var foundSeries = FindSeries(file); if(foundSeries.Count == 0) throw new Exception("Could not find a series for file: {0}".FormatReplace(file.Name)); var series = foundSeries.Count == 1 ? foundSeries.FirstOrDefault() : OnFoundMultipleSeries(foundSeries); RememberSeriesWithFolder(series, file.DirectoryName); var epData = new CollectedEpisode { Path = file.FullName, Series = series }; var directories = GetDirectories(file.FullName); directories.Add(file.Name); epData.Season = FindSeason(directories); if (epData.Season.HasValue) { epData.EpInSeason = FindEpInSeason(directories); } epData.ProductionNumber = FindProductionNumber(directories); epData.Title = FindTitle(file.FullName); return epData; }
public Episode GetEpisode(CollectedEpisode collectedEpisodeData) { if (collectedEpisodeData.Series != null) { var series = collectedEpisodeData.Series; if(collectedEpisodeData.Season.HasValue && series.HasSeason(collectedEpisodeData.Season.Value) && collectedEpisodeData.EpInSeason.HasValue && series.Seasons[collectedEpisodeData.Season.Value].HasEpisode(collectedEpisodeData.EpInSeason.Value)) { return collectedEpisodeData.Series.Seasons[collectedEpisodeData.Season.Value].Episodes[collectedEpisodeData.EpInSeason.Value]; } if(!string.IsNullOrEmpty(collectedEpisodeData.ProductionNumber)) { return series.FindEpisodeByProductionNumber(collectedEpisodeData.ProductionNumber); } if(!string.IsNullOrEmpty(collectedEpisodeData.Title)) { return series.FindEpisodeByTitle(collectedEpisodeData.Title); } } return null; }
public Episode RetrieveEpisode(CollectedEpisode collectedEpisodeData) { if ((collectedEpisodeData.Season.HasValue && collectedEpisodeData.EpInSeason.HasValue) || !string.IsNullOrEmpty(collectedEpisodeData.ProductionNumber) || !string.IsNullOrEmpty(collectedEpisodeData.Title)) { foreach (var dataRetriever in DataRetrievers) { var episode = dataRetriever.GetEpisode(collectedEpisodeData); if (episode != null) { return episode; } } } return null; }
public Episode RetrieveEpisode(CollectedEpisode collectedEpisodeData) { if(!collectedEpisodeData.HasSeries()) { return null; } var episode = EpisodeDataRepository.RetrieveEpisode(collectedEpisodeData); episode.Series = collectedEpisodeData.Series; episode.Series.AddEpisode(episode); return episode; }