public FileProcessingOptions(FileProcessingModeEnum fileProcessingMode, FileManipulationModeEnum fileManipulationMode, string sourceDirectory, bool?alsoFromSubfolders, string targetDirectory, string newFolderName, int newFolderPostfix, int countFilesPerFolder, PresortMethodEnum presortMethod, RenameModeEnum renameMode, string renameSymbols) { FileProcessingMode = fileProcessingMode; FileManipulationMode = fileManipulationMode; SourceDirectory = (string.IsNullOrWhiteSpace(sourceDirectory) || !Directory.Exists(sourceDirectory)) ? throw new DirectoryNotFoundException() : sourceDirectory; AlsoFromSubfolders = alsoFromSubfolders ?? false; TargetDirectory = targetDirectory ?? sourceDirectory; NewFolderName = string.IsNullOrWhiteSpace(newFolderName) ? "New folder" : newFolderName; NewFolderPostfix = newFolderPostfix; PresortMethod = presortMethod; RenameMode = renameMode; RenameSymbols = renameSymbols; FilesList = GetFilesList(); CountFilesPerFolder = countFilesPerFolder == 0 ? FilesList.Count : countFilesPerFolder; FoldersCount = (int)Math.Ceiling((double)FilesList.Count / CountFilesPerFolder); MainWindow.mainWindow.max = FilesList.Count; }
public static IFileProcessor CreateFileProcessor(FileProcessingModeEnum fileProcessingMode) { switch (fileProcessingMode) { case FileProcessingModeEnum.Serial: return(new SerialFileProcessor()); case FileProcessingModeEnum.Task: return(new TPLFileProcessor()); case FileProcessingModeEnum.Action: return(new ActionFileProcessor()); case FileProcessingModeEnum.PLINQ: return(new PLINQFileProcessor()); case FileProcessingModeEnum.Async: return(new AsyncFileProcessor()); default: throw new NotImplementedException(); } }