public void Handle(EpisodeFolderCreatedEvent message) { if (message.SeriesFolder.IsNullOrWhiteSpace() && message.SeasonFolder.IsNullOrWhiteSpace()) { return; } var seriesMetadataFiles = _metadataFileService.GetFilesBySeries(message.Series.Id); foreach (var consumer in _metadataFactory.Enabled()) { var files = new List <MetadataFile>(); var consumerFiles = GetMetadataFilesForConsumer(consumer, seriesMetadataFiles); if (message.SeriesFolder.IsNotNullOrWhiteSpace()) { files.AddIfNotNull(ProcessSeriesMetadata(consumer, message.Series, consumerFiles)); files.AddRange(ProcessSeriesImages(consumer, message.Series, consumerFiles)); } if (message.SeasonFolder.IsNotNullOrWhiteSpace()) { files.AddRange(ProcessSeasonImages(consumer, message.Series, consumerFiles)); } _eventAggregator.PublishEvent(new MetadataFilesUpdated(files)); } }
//TODO: Implementing this will fix a lot of our warning exceptions //public void Handle(MediaCoversUpdatedEvent message) //{ // var movie = message.Movie; // var movieFiles = GetMovieFiles(movie.Id); // foreach (var extraFileManager in _extraFileManagers) // { // extraFileManager.CreateAfterMovieScan(movie, movieFiles); // } //} public void Handle(EpisodeFolderCreatedEvent message) { var series = message.Series; foreach (var extraFileManager in _extraFileManagers) { extraFileManager.CreateAfterEpisodeImport(series, message.SeriesFolder, message.SeasonFolder); } }
private void EnsureEpisodeFolder(EpisodeFile episodeFile, Series series, int seasonNumber, string filePath) { var episodeFolder = Path.GetDirectoryName(filePath); var seasonFolder = _buildFileNames.BuildSeasonPath(series, seasonNumber); var seriesFolder = series.Path; var rootFolder = new OsPath(seriesFolder).Directory.FullPath; if (!_diskProvider.FolderExists(rootFolder)) { throw new RootFolderNotFoundException(string.Format("Root folder '{0}' was not found.", rootFolder)); } var changed = false; var newEvent = new EpisodeFolderCreatedEvent(series, episodeFile); if (!_diskProvider.FolderExists(seriesFolder)) { CreateFolder(seriesFolder); newEvent.SeriesFolder = seriesFolder; changed = true; } if (seriesFolder != seasonFolder && !_diskProvider.FolderExists(seasonFolder)) { CreateFolder(seasonFolder); newEvent.SeasonFolder = seasonFolder; changed = true; } if (seasonFolder != episodeFolder && !_diskProvider.FolderExists(episodeFolder)) { CreateFolder(episodeFolder); newEvent.EpisodeFolder = episodeFolder; changed = true; } if (changed) { _eventAggregator.PublishEvent(newEvent); } }