Esempio n. 1
0
        private void CallbackSaveDuplicateContentCsvReport(
            object sender,
            EventArgs e,
            MacroscopeCsvDuplicateContentReport.OutputWorksheet SelectedOutputWorksheet,
            string OutputFilename
            )
        {
            SaveFileDialog Dialog = new SaveFileDialog();

            Dialog.Filter           = "CSV files (*.csv)|*.csv|All files (*.*)|*.*";
            Dialog.FilterIndex      = 2;
            Dialog.RestoreDirectory = true;
            Dialog.DefaultExt       = "csv";
            Dialog.AddExtension     = true;
            Dialog.FileName         = OutputFilename;

            this.Enabled = false;

            if (Dialog.ShowDialog() == DialogResult.OK)
            {
                string Path = Dialog.FileName;
                MacroscopeTriplePercentageProgressForm ProgressForm;
                MacroscopeCsvDuplicateContentReport    CsvReport;

                ProgressForm = new MacroscopeTriplePercentageProgressForm(MainForm: this);

                CsvReport = new MacroscopeCsvDuplicateContentReport(
                    ProgressFormDialogue: ProgressForm
                    );

                try
                {
                    Cursor.Current = Cursors.WaitCursor;

                    CsvReport.WriteCsv(
                        JobMaster: this.JobMaster,
                        SelectedOutputWorksheet: SelectedOutputWorksheet,
                        OutputFilename: Path
                        );

                    Cursor.Current = Cursors.Default;
                }
                catch (MacroscopeSaveCsvFileException ex)
                {
                    this.DialogueBoxError("Error saving Duplicate Content CSV Report", ex.Message);
                }
                catch (Exception ex)
                {
                    this.DialogueBoxError("Error saving Duplicate Content CSV Report", ex.Message);
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }
            }

            Dialog.Dispose();

            this.Enabled = true;
        }
Esempio n. 2
0
        /**************************************************************************/

        public void WriteCsv(
            MacroscopeJobMaster JobMaster,
            MacroscopeCsvDuplicateContentReport.OutputWorksheet SelectedOutputWorksheet,
            string OutputFilename
            )
        {
            decimal MajorPercentageDivider = 1;

            try
            {
                using (StreamWriter writer = File.CreateText(OutputFilename))
                {
                    CsvWriter ws = new CsvWriter(writer);

                    switch (SelectedOutputWorksheet)
                    {
                    case MacroscopeCsvDuplicateContentReport.OutputWorksheet.TITLES:

                        this.ProgressForm.UpdatePercentages(
                            Title: "Processing Titles",
                            Message: "Identifying duplicate titles in collection:",
                            MajorPercentage: (( decimal )100 / MajorPercentageDivider) * ( decimal )1,
                            ProgressLabelMajor: "Documents Processed",
                            MinorPercentage: 0,
                            ProgressLabelMinor: "",
                            SubMinorPercentage: 0,
                            ProgressLabelSubMinor: ""
                            );

                        this.BuildWorksheetPageDuplicateTitles(JobMaster, ws);

                        break;

                    case MacroscopeCsvDuplicateContentReport.OutputWorksheet.CHECKSUMS:

                        this.ProgressForm.UpdatePercentages(
                            Title: "Processing Checksums",
                            Message: "Identifying duplicate checksums in collection:",
                            MajorPercentage: (( decimal )100 / MajorPercentageDivider) * ( decimal )2,
                            ProgressLabelMajor: "Documents Processed",
                            MinorPercentage: 0,
                            ProgressLabelMinor: "",
                            SubMinorPercentage: 0,
                            ProgressLabelSubMinor: ""
                            );

                        this.BuildWorksheetPageDuplicateChecksums(JobMaster, ws);

                        break;

                    case MacroscopeCsvDuplicateContentReport.OutputWorksheet.ETAGS:

                        this.ProgressForm.UpdatePercentages(
                            Title: "Processing ETags",
                            Message: "Identifying duplicate ETags in collection:",
                            MajorPercentage: (( decimal )100 / MajorPercentageDivider) * ( decimal )3,
                            ProgressLabelMajor: "Documents Processed",
                            MinorPercentage: 0,
                            ProgressLabelMinor: "",
                            SubMinorPercentage: 0,
                            ProgressLabelSubMinor: ""
                            );

                        this.BuildWorksheetPageDuplicateEtags(JobMaster, ws);

                        break;

                    case MacroscopeCsvDuplicateContentReport.OutputWorksheet.PAGES:

                        this.ProgressForm.UpdatePercentages(
                            Title: "Applying Levenshtein Distance",
                            Message: "Identifying duplicate documents via Levenshtein Distance in collection:",
                            MajorPercentage: (( decimal )100 / MajorPercentageDivider) * ( decimal )4,
                            ProgressLabelMajor: "Documents Processed: 0",
                            MinorPercentage: 0,
                            ProgressLabelMinor: "",
                            SubMinorPercentage: 0,
                            ProgressLabelSubMinor: ""
                            );

                        this.BuildWorksheetPageDuplicatePages(JobMaster, ws);

                        break;

                    default:
                        break;
                    }
                }
            }
            catch (CsvWriterException)
            {
                MacroscopeSaveCsvFileException CannotSaveCsvFileException;
                CannotSaveCsvFileException = new MacroscopeSaveCsvFileException(
                    string.Format("Cannot write to CSV file at {0}", OutputFilename)
                    );
                throw CannotSaveCsvFileException;
            }
            catch (IOException)
            {
                MacroscopeSaveCsvFileException CannotSaveCsvFileException;
                CannotSaveCsvFileException = new MacroscopeSaveCsvFileException(
                    string.Format("Cannot write to CSV file at {0}", OutputFilename)
                    );
                throw CannotSaveCsvFileException;
            }
        }