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);
}