static void InternalMain(string[] args) { if (args.Length != 2) { WriteUsage(); return; } var inputPath = args[0].ToApplicationRelativeAbsolutePath(); var outputPath = args[1].ToApplicationRelativeAbsolutePath(); using (var bootstrapper = new AutofacBootstrapper()) { var context = bootstrapper.GetContext(); var directoryService = context.Resolve <IDirectoryService>(); var metaDataFactory = context.Resolve <IMetaDataFactory>(); var audioFileService = context.Resolve <IAudioFileService>(); var metaDataQueueFactory = context.Resolve <IMetaDataQueueFactory>(); // Create input path traverser and replicate the input directory // structure into the output directory. var inputPathTraverser = directoryService.Traverse(inputPath); directoryService.PrepareReplication(inputPath, outputPath).Replicate(); // Create metadata for each .m4a file in the input directory. var inputMetaData = inputPathTraverser .SelectMany(di => di.GetFiles("*.m4a")) .Select(f => metaDataFactory.Create(inputPath, f.FullName, outputPath)) .ToArray(); // Create the metadata queue. var metaDataQueue = metaDataQueueFactory.Create(inputMetaData); // Run conversion. Task.WaitAll( ConvertRoutine(audioFileService, metaDataQueue), ConvertRoutine(audioFileService, metaDataQueue), ConvertRoutine(audioFileService, metaDataQueue), ConvertRoutine(audioFileService, metaDataQueue) ); Console.WriteLine("Conversion has been completed."); } }
static void InternalMain(string[] args) { if (args.Length != 2) { WriteUsage(); return; } var inputPath = args[0].ToApplicationRelativeAbsolutePath(); var outputPath = args[1].ToApplicationRelativeAbsolutePath(); using (var bootstrapper = new AutofacBootstrapper()) { var context = bootstrapper.GetContext(); var directoryService = context.Resolve <IDirectoryService>(); var pathTransformer = context.Resolve <IPathTransformer>(); // Create input path traverser and replicate the input directory // structure into the output directory. var inputPathTraverser = directoryService.Traverse(inputPath); var shortcutEmbryos = inputPathTraverser .SelectMany(di => di .GetFiles("*.mp3") .Select(fi => new ShortcutEmbryo(pathTransformer, fi, inputPath, outputPath)) ) .ToArray(); foreach (var embryo in shortcutEmbryos) { Console.WriteLine(); Console.WriteLine("Input file: {0}", embryo.FileInfo.FullName); Console.WriteLine("Output shortcut: {0}", embryo.OutputFilePath); CreateShortcut(embryo.OutputName, embryo.OutputFilePath, embryo.FileInfo.FullName); } Console.WriteLine("Shortcuts have been created."); } }