private void CallbackSaveContactDetailsCsvReport(
            object sender,
            EventArgs e,
            MacroscopeCsvContactDetailsReport.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;
                MacroscopeCsvContactDetailsReport CsvReport = new MacroscopeCsvContactDetailsReport();

                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 Contact Details CSV Report", ex.Message);
                }
                catch (Exception ex)
                {
                    this.DialogueBoxError("Error saving Contact Details CSV Report", ex.Message);
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }
            }

            if (Dialog != null)
            {
                Dialog.Dispose();
            }

            this.Enabled = true;
        }
 public void TestWriteCsv ()
 {
   MacroscopeJobMaster JobMaster = new MacroscopeJobMaster( MacroscopeConstants.RunTimeMode.LIVE );
   MacroscopeCsvContactDetailsReport ReportFile = new MacroscopeCsvContactDetailsReport();
   List<MacroscopeCsvContactDetailsReport.OutputWorksheet> SelectedOutputWorksheets = new List<MacroscopeCsvContactDetailsReport.OutputWorksheet>();
   SelectedOutputWorksheets.Add( MacroscopeCsvContactDetailsReport.OutputWorksheet.EMAIL );
   SelectedOutputWorksheets.Add( MacroscopeCsvContactDetailsReport.OutputWorksheet.TELEPHONE );
   foreach ( MacroscopeCsvContactDetailsReport.OutputWorksheet SelectedOutputWorksheet in SelectedOutputWorksheets )
   {
     string Filename = string.Join( ".", Path.GetTempFileName(), ".csv" );
     ReportFile.WriteCsv( JobMaster: JobMaster, SelectedOutputWorksheet: SelectedOutputWorksheet, OutputFilename: Filename );
     Assert.IsTrue( File.Exists( Filename ) );
     File.Delete( Filename );
   }
 }