public (int count, string outputPath) Execute( IMetaDataExtractor extractor, string folder, bool includeSubFolders, bool useParallelProcessing) { var reader = new MediaFileReader { UseParallelProcessing = useParallelProcessing }; ConfigureProgress(reader); var writer = new OutputWriter(); var outputPath = GetOutputFilePath(folder, extractor.OutputFileName); var count = writer.Execute(outputPath, reader.Execute(extractor, folder, includeSubFolders).ToArray()); return(count, outputPath); }