private void Btn_Ok_Click(object sender, EventArgs e) { bool flag; flag = CheckDirectoryExists( Bf_SourceDirectory, "Source", out DirectoryInfo sourceDirectory ); if (!flag) { return; } flag = CheckDirectoryExists( Bf_DestinationDirectory, "Destination", out DirectoryInfo destDirectory ); if (!flag) { return; } DifferenceCalculationResults results = DifferenceCalculation.DifferenceCalculation.CalculateFileOperations ( sourceDirectory, destDirectory ); ExecuteOperations ( sourceDirectory, destDirectory, results ); }
private void ExecuteOperations(DirectoryInfo sourceDirectory, DirectoryInfo destDirectory, DifferenceCalculationResults results) { IEnumerable <FileOperationItem> operations = results .Where(x => x.OperationError.ErrorLevel <= OperationErrorLevel.Information) .Select(x => x.FileOperationItem); #if DEBUG List <FileOperationItem> operationsList = operations.ToList(); operations = operationsList; #endif if (!operations.Any()) { MessageBox.Show(this, "No differences were detected, No action is required.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } FileOperation.FileOperation fileOperation = null; try { fileOperation = new FileOperation.FileOperation(Handle) { OperationsFlags = FileOperationFlags.NoConfirmDirectoryCreation | FileOperationFlags.NoConfirmation }; foreach (FileOperationItem operation in operations) { fileOperation.AddOperation(operation); } if (MessageBox.Show(this, "Are you sure you want to start the operations?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } fileOperation.PerformOperations(); MessageBox.Show(this, "Done.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); //this.Btn_Ok.Enabled = false; } finally { fileOperation?.Dispose(); } }