public async Task <FileResult> Copy(Configuration configuration, IFilesCopyHandler handler = null) { var result = new FileResult(); Cleaner.AddToCleanup(configuration.TargetPath); var testFiles = CreateTestFiles(configuration); if (Random) { testFiles.Shuffle(); } var copyWorkers = new FileCopyWorkers(configuration, handler, TasksCount); var processedFiles = await copyWorkers.ProcessFiles(testFiles); var files = processedFiles.GetProcessedItems().Where(s => s.Output); result.Count = files.Count(); result.Size = files.Sum(s => s.Input.FileSize); return(result); }
public FileCopyWorkers(Configuration configuration, IFilesCopyHandler handler, int tasksCount) : base(configuration) { this.handler = handler; TasksCount = tasksCount; }