Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        //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);
            }
        }
Esempio n. 3
0
        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);
            }
        }