예제 #1
0
 protected virtual void OnExportSessions(ExportSessionEventArgs e)
 {
     if (ExportSessions != null)
     {
         ExportSessions(this, e);
     }
 }
        protected void exportSessions(List <Session> selectedSessions, ExportSessionEventArgs se)
        {
            String filetype;
            String filedescription;

            if (selectedSessions.Count == 0)
            {
                MessageBox.Show("You must select some sessions to export!"
                                , "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (se.type == ExportSessionEventArgs.ExportType.CLIP_TYPE)
            {
                int copiedCount = sc.copyHostnamesToClipboard(selectedSessions);
                if (copiedCount != selectedSessions.Count)
                {
                    MessageBox.Show("Only copied " + copiedCount + " sessions"
                                    , "Alert", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Successfully copied " + copiedCount + " hostnames"
                                    , "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                return;
            }
            else
            {
                filetype        = sc.getExportFileTypeExtension(se.type);
                filedescription = sc.getExportFileDescription(se.type);

                saveFileDialog1.Filter = filedescription + "|*." + filetype + "|All files|*.*";

                saveFileDialog1.Title = SAVE_FILE_DIALOG_TITLE + filetype + " file: " +
                                        selectedSessions.Count + " sessions selected";
                saveFileDialog1.DefaultExt = filetype;
            }

            if (DialogResult.OK == saveFileDialog1.ShowDialog(this))
            {
                bool   result       = true;
                String errorMessage = "Unknown Error";
                int    savedCount   = -1;
                try
                {
                    savedCount = sc.saveSessionsToFile(
                        selectedSessions,
                        saveFileDialog1.FileName,
                        se.type);
                    if (savedCount != selectedSessions.Count)
                    {
                        result       = false;
                        errorMessage = "Only exported " + savedCount
                                       + " out of " + selectedSessions.Count + " sessions.";
                    }
                }
                catch (Exception ex)
                {
                    errorMessage = ex.Message;
                    result       = false;
                }
                if (result == false)
                {
                    MessageBox.Show("Failed to export sessions:\n" +
                                    errorMessage
                                    , "Alert", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Successfully exported " + savedCount + " sessions"
                                    , "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
예제 #3
0
 private void sessionTreeControl1_ExportSessions(object sender, ExportSessionEventArgs se)
 {
     exportSessions(currentSessionControl.getSelectedSessions(), se);
 }