Smrf.NodeXL.ExcelTemplate.AnalyzeEmailNetworkDialog.DoDataExchangeFromControls C# (CSharp) Method

DoDataExchangeFromControls() protected method

protected DoDataExchangeFromControls ( ) : System.Boolean
return System.Boolean
    DoDataExchangeFromControls()
    {
        Boolean bAllEmail = radAllEmail.Checked;
        Boolean bUseParticipants = !bAllEmail && cbxUseParticipants.Checked;
        Boolean bUseStartTime = !bAllEmail && cbxUseStartTime.Checked;
        Boolean bUseEndTime = !bAllEmail && cbxUseEndTime.Checked;
        Boolean bUseFolder = !bAllEmail && cbxUseFolder.Checked;
        Boolean bUseMinimumSize = !bAllEmail && cbxUseMinimumSize.Checked;
        Boolean bUseMaximumSize = !bAllEmail && cbxUseMaximumSize.Checked;
        Boolean bUseSubjectText = !bAllEmail && cbxUseSubjectText.Checked;
        Boolean bUseBodyText = !bAllEmail && cbxUseBodyText.Checked;

        Boolean bUseAttachmentFilter = !bAllEmail &&
            cbxUseAttachmentFilter.Checked;

        String sFolder = null;
        String sSubjectText = null;
        String sBodyText = null;

        if (!bAllEmail)
        {
            // Validate the controls.

            if (
                ( bUseParticipants && !ValidateParticipants() )
                ||
                !ValidateFilterTextBox(bUseSubjectText, txbSubjectText,
                    "the subject text", out sSubjectText)
                ||
                !ValidateFilterTextBox(bUseBodyText, txbBodyText,
                    "the message body text", out sBodyText)
                )
            {
                return (false);
            }

            if (bUseStartTime && bUseEndTime &&
                dtpEndTime.Value.Date < dtpStartTime.Value.Date)
            {
                OnInvalidDateTimePicker(dtpEndTime,
                    "The \"on or before\" date can't be earlier than the"
                    + " \"on or after\" date.");

                return (false);
            }

            Decimal decMinimumSize = Decimal.MinValue;
            Decimal decMaximumSize = Decimal.MinValue;

            if ( bUseMinimumSize && !ValidateNumericUpDown(
                nudMinimumSize, "a minimum size", out decMinimumSize) )
            {
                return (false);
            }

            if ( bUseMaximumSize && !ValidateNumericUpDown(
                nudMaximumSize, "a maximum size", out decMaximumSize) )
            {
                return (false);
            }

            if (bUseMinimumSize && bUseMaximumSize &&
                decMaximumSize < decMinimumSize)
            {
                return ( OnInvalidNumericUpDown(nudMaximumSize,
                    "The maximum size can't be less than the minimum size."
                    ) );
            }

            if ( bUseAttachmentFilter &&
                radHasAttachmentFromParticipant1.Checked &&
                !FirstParticipantSpecified() )
            {
                ShowWarning(
                    "If you want to filter on emails that have attachments"
                    + " from the first email address, you must"
                    + " check \"Includes these email addresses on the From,"
                    + " To, Cc, or Bcc lines\" and specify an email address in"
                    + " the email address list."
                    );

                radHasAttachmentFromParticipant1.Focus();

                return (false);
            }

            if ( !ValidateFilterTextBox(bUseFolder, txbFolder, "a folder",
                out sFolder)  )
            {
                return (false);
            }
        }

        // The controls have been validated.  Transfer their contents to the
        // user settings.

        m_oAnalyzeEmailNetworkDialogUserSettings.AnalyzeAllEmail = bAllEmail;

        if (bUseParticipants)
        {
            DoDataExchangeFromParticipants();
        }
        else
        {
            m_oAnalyzeEmailNetworkDialogUserSettings.ParticipantsCriteria =
                null;
        }

        m_oAnalyzeEmailNetworkDialogUserSettings.StartTime =
            bUseStartTime ? dtpStartTime.Value.Date :
                (Nullable<DateTime>)null;

        m_oAnalyzeEmailNetworkDialogUserSettings.EndTime =
            bUseEndTime ? dtpEndTime.Value.Date :
                (Nullable<DateTime>)null;

        m_oAnalyzeEmailNetworkDialogUserSettings.Folder = sFolder;

        m_oAnalyzeEmailNetworkDialogUserSettings.MinimumSize =
            bUseMinimumSize ? (Int64)nudMinimumSize.Value
                : (Nullable<Int64>)null;

        m_oAnalyzeEmailNetworkDialogUserSettings.MaximumSize =
            bUseMaximumSize ? (Int64)nudMaximumSize.Value
                : (Nullable<Int64>)null;

        m_oAnalyzeEmailNetworkDialogUserSettings.HasCc = cbxUseCc.Checked ?
            radHasCc.Checked : ( Nullable<Boolean> )null;

        m_oAnalyzeEmailNetworkDialogUserSettings.HasBcc =
            cbxUseBcc.Checked ? radHasBcc.Checked :
                ( Nullable<Boolean> )null;

        m_oAnalyzeEmailNetworkDialogUserSettings.SubjectText = sSubjectText;

        m_oAnalyzeEmailNetworkDialogUserSettings.BodyText = sBodyText;

        if (bUseAttachmentFilter)
        {
            if (radHasAttachment.Checked)
            {
                m_oAnalyzeEmailNetworkDialogUserSettings.AttachmentFilter =
                    AttachmentFilter.HasAttachment;
            }
            else if (radNoAttachment.Checked)
            {
                m_oAnalyzeEmailNetworkDialogUserSettings.AttachmentFilter =
                    AttachmentFilter.NoAttachment;
            }
            else if (radHasAttachmentFromParticipant1.Checked)
            {
                m_oAnalyzeEmailNetworkDialogUserSettings.AttachmentFilter =
                    AttachmentFilter.HasAttachmentFromParticipant1;
            }
            else
            {
                Debug.Assert(false);
            }
        }
        else
        {
            m_oAnalyzeEmailNetworkDialogUserSettings.AttachmentFilter =
                null;
        }

        m_oAnalyzeEmailNetworkDialogUserSettings.UseCcForEdgeWeights =
            cbxUseCcForEdgeWeights.Checked;

        m_oAnalyzeEmailNetworkDialogUserSettings.UseBccForEdgeWeights =
            cbxUseBccForEdgeWeights.Checked;

        return (true);
    }