Exemple #1
0
        private void ScanLoaderCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            ScanLoaderBackgroundWorker backgroundWorker     = sender as ScanLoaderBackgroundWorker;
            SortableBindingList <ScanLib.ScanEntry> results = this.nmapResults.DataSource as SortableBindingList <ScanLib.ScanEntry>;

            if (backgroundWorker != null && results != null)
            {
                if (e.Cancelled)
                {
                    MessageBox.Show(this
                                    , "Scan import canceled."
                                    , "Import canceled ..."
                                    , MessageBoxButtons.OK
                                    , MessageBoxIcon.Information);
                    this.statusMessage.Text = "Import completed";
                }
                else
                {
                    try
                    {
                        this.cancelWorker.Visible = false;
                        // Add parsed items to DataGridView
                        this.progressBar.Maximum = backgroundWorker.ScanLoader.Count;
                        this.progressBar.Step    = 1;
                        this.progressBar.Value   = 0;
                        // Report caught exceptions
                        foreach (var exception in backgroundWorker.ScanLoader.Exceptions)
                        {
                            this.LogMessage(exception);
                        }
                        // Update table
                        foreach (ScanLib.ScanEntry item in backgroundWorker.ScanLoader)
                        {
                            results.Add(item);
                            this.progressBar.PerformStep();
                        }
                        this.statusMessage.Text = "Import completed";
                        this.UpdateServiceCount();
                        MessageBox.Show(this
                                        , "Scan results import successfully completed."
                                        , "Import complete ..."
                                        , MessageBoxButtons.OK
                                        , MessageBoxIcon.Information);
                    }
                    catch (Exception ex)
                    {
                        this.LogMessage(ex);
                        MessageBox.Show(this
                                        , "Loading scan results failed"
                                        , "Import failed ..."
                                        , MessageBoxButtons.OK
                                        , MessageBoxIcon.Error);
                    }
                }
            }
            this.progressBar.Value = 0;
            this.services.Enabled  = true;
        }
Exemple #2
0
        private void loadNmap_Click(object sender, EventArgs e)
        {
            var states = this.GetStates();

            using (var openFileDialog = new OpenFileDialog())
            {
                try
                {
                    if (!this.NmapLoaderBackgroundWorker.IsBusy)
                    {
                        openFileDialog.Filter           = "Nmap XML Result File (*.xml)|*.*";
                        openFileDialog.Title            = "Open Nmap XML Scan Results";
                        openFileDialog.Multiselect      = true;
                        openFileDialog.FilterIndex      = 2;
                        openFileDialog.RestoreDirectory = true;

                        if (openFileDialog.ShowDialog() == DialogResult.OK)
                        {
                            this.services.Enabled     = false;
                            this.cancelWorker.Visible = true;
                            this.progressBar.Value    = 0;
                            this.progressBar.Maximum  = 100;
                            this.statusMessage.Text   = "Import started";
                            var loader = new NmapLoader(openFileDialog.FileNames, states);
                            this.NmapLoaderBackgroundWorker = new ScanLoaderBackgroundWorker(loader);
                            this.NmapLoaderBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ScanLoaderCompleted);
                            this.NmapLoaderBackgroundWorker.ProgressChanged    += new ProgressChangedEventHandler(ScanLoaderProgressChanged);
                            this.NmapLoaderBackgroundWorker.RunWorkerAsync();
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.LogMessage(ex);
                }
            }
        }