in Sample Applications/StickyNotesDemo/Dialog.cs [436:571]
private void ok_Click(object sender, RoutedEventArgs e)
{
var server = LogicalTreeHelper.FindLogicalNode(this, "server") as TextBox;
var account = LogicalTreeHelper.FindLogicalNode(this, "account") as TextBox;
var date = LogicalTreeHelper.FindLogicalNode(this, "date") as TextBox;
var time = LogicalTreeHelper.FindLogicalNode(this, "time") as TextBox;
var repeatNumber = LogicalTreeHelper.FindLogicalNode(this, "repeat") as TextBox;
var daysCheck = LogicalTreeHelper.FindLogicalNode(this, "daysCheck") as CheckBox;
var weeksCheck = LogicalTreeHelper.FindLogicalNode(this, "weeksCheck") as CheckBox;
var str = (daysCheck.IsChecked == true) ? "D" : "";
str += (weeksCheck.IsChecked == true) ? "W" : "";
if (str != string.Empty)
{
str += repeatNumber.Text;
}
else
{
str = "null";
}
if ((date.Text != string.Empty) && (date.Text != "/2006") &&
(!(date.Text.Contains(Alarm.Date.ToShortDateString()))
|| !(AlarmRepetition.Contains(str)) ||
!(Alarm.TimeOfDay.ToString().Contains(time.Text))))
{
var dateString = date.Text;
var arr = new int[3];
var timeString = time.Text;
var arr1 = new int[3];
var tail = 0;
var head = dateString.IndexOf('/');
head = (head >= 0) ? head : 0;
try
{
for (var i = 0; i < 3; i++)
{
head = (i == (arr.Length - 1)) ? (dateString.Length) : head;
arr[i] = int.Parse(dateString.Substring(tail, head - tail));
if (head == dateString.Length)
{
break;
}
tail = head + 1;
head = dateString.IndexOf('/', tail);
}
tail = 0;
head = timeString.IndexOf(':');
head = (head >= 0) ? head : 0;
for (var i = 0; i < 3; i++)
{
head = (i == (arr1.Length - 1)) ? (timeString.Length) : head;
arr1[i] = int.Parse(timeString.Substring(tail, head - tail));
if (head == timeString.Length)
{
break;
}
tail = head + 1;
head = timeString.IndexOf(':', tail);
}
var dt = new DateTime(arr[2], arr[0], arr[1], arr1[0], arr1[1], arr1[2]);
if (dt.CompareTo(DateTime.Now) >= 0)
{
Alarm = dt;
PropertyArray[(int) PropNames.Alarm] = dt;
if (repeatNumber.Text != string.Empty)
{
AlarmRepetition = (daysCheck.IsChecked == true) ? "D" : "";
AlarmRepetition += (weeksCheck.IsChecked == true) ? "W" : "";
if (AlarmRepetition != string.Empty)
{
AlarmRepetition += repeatNumber.Text;
}
else
{
AlarmRepetition = "null";
}
}
Tag = "OK";
Close();
}
else
{
Title = "AlarmSettings Error";
var l = LogicalTreeHelper.FindLogicalNode(this, "statusThirdTab") as Label;
l.Content = "Alarm can be set if the event is after Current time";
l.Foreground = Brushes.Red;
}
}
catch (Exception e1)
{
var l = LogicalTreeHelper.FindLogicalNode(this, "statusThirdTab") as Label;
l.Content = e1.Message;
l.Foreground = Brushes.Red;
Title = "AlarmSettings Error";
}
}
else
{
if (((server.Text == string.Empty) && (account.Text == string.Empty)) ||
((server.Text != string.Empty) && (account.Text != string.Empty)))
{
if (((server.Text != string.Empty) && (account.Text != string.Empty)))
{
var port = LogicalTreeHelper.FindLogicalNode(this, "port") as TextBox;
var cb = LogicalTreeHelper.FindLogicalNode(this, "sslCheck") as CheckBox;
var fs = new FileStream("MailServerInfo", FileMode.OpenOrCreate);
var writer = new StreamWriter(fs);
writer.WriteLine(server.Text);
writer.WriteLine(account.Text);
port.Text = (port.Text != string.Empty) ? port.Text : "25";
writer.WriteLine(port.Text);
var check = (cb.IsChecked == true) ? "true" : "false";
writer.WriteLine(check);
writer.Close();
fs.Close();
}
Tag = "OK";
Close();
}
else
{
Title = "Mail settings are incomplete";
server.Background = account.Background = Window2.ChangeBackgroundColor(Colors.Red);
var status = LogicalTreeHelper.FindLogicalNode(this, "status") as Label;
status.Content = "Fill in highlighted fields";
status.Foreground = Brushes.Red;
}
}
}