Exemple #1
0
        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
            );
        }
Exemple #2
0
        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();
            }
        }