Ejemplo n.º 1
0
        private void ThirdTabAlarmSettings(TabItem item)
        {
            item.Header = "Alarm Settings";
            StackPanel sp = new StackPanel();

            sp.Background = Brushes.Transparent;



            Grid g = new Grid();

            g.Background = Brushes.Transparent;
            RowDefinition rdef1 = new RowDefinition();
            RowDefinition rdef2 = new RowDefinition();
            RowDefinition rdef3 = new RowDefinition();

            g.RowDefinitions.Add(rdef1);
            g.RowDefinitions.Add(rdef2);
            g.RowDefinitions.Add(rdef3);

            ColumnDefinition cd1 = new ColumnDefinition();
            GridLength       gdl = new GridLength(300);

            cd1.Width = gdl;
            ColumnDefinition cd2 = new ColumnDefinition();

            g.ColumnDefinitions.Add(cd1);
            g.ColumnDefinitions.Add(cd2);


            Label l1 = new Label();

            l1.Background = sp.Background;
            l1.Content    = "Date (mm/dd/yyyy)";


            TextBox date = new TextBox();

            date.Text = "/2006";
            date.Name = "date";
            //if (Alarm.CompareTo(DateTime.Now) >= 0)
            //{
            //    date.Text = Alarm.Date.ToShortDateString();
            //}

            if (AlarmRepetition.Contains("null"))
            {
                if ((Alarm.CompareTo(DateTime.Now) >= 0) || (((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) < 8) &&
                                                             ((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) >= 0)))
                {
                    date.Text = Alarm.Date.ToShortDateString();
                }
            }
            else
            {
                date.Text = Alarm.Date.ToShortDateString();
            }


            Grid.SetRow(l1, 0);
            Grid.SetColumn(l1, 0);
            Grid.SetRow(date, 0);
            Grid.SetColumn(date, 1);


            Label l2 = new Label();

            l2.Background = sp.Background;
            l2.Content    = "Time (hr:min:sec)";

            TextBox time = new TextBox();

            time.Text = "00:00:00";
            time.Name = "time";

            if (AlarmRepetition.Contains("null"))
            {
                if ((Alarm.CompareTo(DateTime.Now) >= 0) || (((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) < 8) &&
                                                             ((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) >= 0)))
                {
                    time.Text = Alarm.TimeOfDay.ToString();
                }
            }
            else
            {
                time.Text = Alarm.TimeOfDay.ToString();
            }



            Grid.SetRow(l2, 1);
            Grid.SetColumn(l2, 0);
            Grid.SetRow(time, 1);
            Grid.SetColumn(time, 1);



            g.Children.Add(l1);
            g.Children.Add(date);
            g.Children.Add(l2);
            g.Children.Add(time);

            Label l3 = new Label();

            l3.Background = sp.Background;
            l3.Content    = "Repeat Every:";

            TextBox repeatNumber = new TextBox();

            repeatNumber.Text         = "0";
            repeatNumber.Name         = "repeat";
            repeatNumber.MaxLength    = 3;
            repeatNumber.TextChanged += new TextChangedEventHandler(repeatNumber_TextChanged);
            if (alarmRepetition.Contains("null") == false)
            {
                repeatNumber.Text = alarmRepetition.Substring(1);
            }

            Label space = new Label();

            space.Background = sp.Background;
            space.Content    = " ";

            CheckBox daysCheck = new CheckBox();

            daysCheck.IsChecked         = false;
            daysCheck.VerticalAlignment = VerticalAlignment.Center;
            daysCheck.Name     = "daysCheck";
            daysCheck.Checked += new RoutedEventHandler(daysCheck_Checked);


            Label l4 = new Label();

            l4.Background = sp.Background;
            l4.Content    = "Day(s)";

            Label space1 = new Label();

            space.Background = sp.Background;
            space.Content    = " ";

            CheckBox weeksCheck = new CheckBox();

            weeksCheck.IsChecked         = false;
            weeksCheck.VerticalAlignment = VerticalAlignment.Center;
            weeksCheck.Name     = "weeksCheck";
            weeksCheck.Checked += new RoutedEventHandler(weeksCheck_Checked);
            try
            {
                if (alarmRepetition.Contains("null") == false)
                {
                    char[] charr = alarmRepetition.ToCharArray(0, 1);
                    switch (charr[0])
                    {
                    case 'D':
                        daysCheck.IsChecked = true;
                        break;

                    case 'W':
                        weeksCheck.IsChecked = true;
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (Exception) { }
            Label l5 = new Label();

            l5.Background = sp.Background;
            l5.Content    = "Week(s)";

            WrapPanel wp = new WrapPanel();

            wp.Children.Add(l3);
            wp.Children.Add(repeatNumber);
            wp.Children.Add(space);
            wp.Children.Add(daysCheck);
            wp.Children.Add(l4);
            wp.Children.Add(space1);
            wp.Children.Add(weeksCheck);
            wp.Children.Add(l5);



            Label status = new Label();

            status.Background = sp.Background;
            status.Name       = "statusThirdTab";

            sp.Children.Add(g);
            sp.Children.Add(wp);
            sp.Children.Add(status);

            item.Content = sp;
        }
Ejemplo n.º 2
0
        void ok_Click(object sender, RoutedEventArgs e)
        {
            TextBox  server       = LogicalTreeHelper.FindLogicalNode(this, "server") as TextBox;
            TextBox  account      = LogicalTreeHelper.FindLogicalNode(this, "account") as TextBox;
            TextBox  date         = LogicalTreeHelper.FindLogicalNode(this, "date") as TextBox;
            TextBox  time         = LogicalTreeHelper.FindLogicalNode(this, "time") as TextBox;
            TextBox  repeatNumber = LogicalTreeHelper.FindLogicalNode(this, "repeat") as TextBox;
            CheckBox daysCheck    = LogicalTreeHelper.FindLogicalNode(this, "daysCheck") as CheckBox;
            CheckBox weeksCheck   = LogicalTreeHelper.FindLogicalNode(this, "weeksCheck") as CheckBox;

            string 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))))
            {
                string dateString = date.Text;
                int[]  arr        = new int[3];
                string timeString = time.Text;
                int[]  arr1       = new int[3];

                int tail = 0;
                int head = dateString.IndexOf('/');
                head = (head >= 0) ? head : 0;

                try
                {
                    for (int i = 0; i < 3; i++)
                    {
                        head   = (i == (arr.Length - 1)) ? (dateString.Length) : head;
                        arr[i] = Int32.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 (int i = 0; i < 3; i++)
                    {
                        head    = (i == (arr1.Length - 1)) ? (timeString.Length) : head;
                        arr1[i] = Int32.Parse(timeString.Substring(tail, head - tail));
                        if (head == timeString.Length)
                        {
                            break;
                        }
                        tail = head + 1;
                        head = timeString.IndexOf(':', tail);
                    }

                    DateTime dt = new DateTime(arr[2], arr[0], arr[1], arr1[0], arr1[1], arr1[2]);
                    if (dt.CompareTo(DateTime.Now) >= 0)
                    {
                        this.alarm = dt;
                        PropArray[(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";
                            }
                        }
                        this.Tag = "OK";
                        this.Close();
                    }
                    else
                    {
                        this.Title = "AlarmSettings Error";
                        Label 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)
                {
                    Label l = LogicalTreeHelper.FindLogicalNode(this, "statusThirdTab") as Label;
                    l.Content    = e1.Message;
                    l.Foreground = Brushes.Red;
                    this.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)))
                    {
                        TextBox  port = LogicalTreeHelper.FindLogicalNode(this, "port") as TextBox;
                        CheckBox cb   = LogicalTreeHelper.FindLogicalNode(this, "sslCheck") as CheckBox;


                        FileStream   fs      = new FileStream("MailServerInfo", FileMode.OpenOrCreate);
                        StreamWriter _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);
                        string check = (cb.IsChecked == true) ? "true" : "false";
                        _writer.WriteLine(check);

                        _writer.Close();
                        fs.Close();
                    }
                    this.Tag = "OK";
                    this.Close();
                }
                else
                {
                    this.Title        = "Mail settings are incomplete";
                    server.Background = account.Background = Window2.ChangeBackgroundColor(Colors.Red);
                    Label status = LogicalTreeHelper.FindLogicalNode(this, "status") as Label;
                    status.Content    = "Fill in highlighted fields";
                    status.Foreground = Brushes.Red;
                }
            }
        }