public void Handle(AuthorScannedEvent message) { var author = message.Author; var extraFiles = new List <ExtraFile>(); if (!_diskProvider.FolderExists(author.Path)) { return; } _logger.Debug("Looking for existing extra files in {0}", author.Path); var filesOnDisk = _diskScanService.GetNonBookFiles(author.Path); var possibleExtraFiles = _diskScanService.FilterFiles(author.Path, filesOnDisk); var filteredFiles = possibleExtraFiles; var importedFiles = new List <string>(); foreach (var existingExtraFileImporter in _existingExtraFileImporters) { var imported = existingExtraFileImporter.ProcessFiles(author, filteredFiles, importedFiles); importedFiles.AddRange(imported.Select(f => Path.Combine(author.Path, f.RelativePath))); } _logger.Info("Found {0} extra files", extraFiles.Count); }