public void init( Alert alert, string defaultColor ) { if (!Registration.isValid()) { label7.Visible = false; soundField.Visible = false; browseButton.Visible = false; messageBox.ShowStamp = false; } backgroundChanged = false; currentAlert = alert; soundField.Text = alert.getSound(); try { string background = alert.getBackground(); if (background.ToUpper().Equals("DEFAULT")) { background = defaultColor; } else { backgroundChanged = true; } messageBox.RichTextBox.BackColor = Color.FromArgb(System.Convert.ToInt32(background)); } catch { messageBox.RichTextBox.BackColor = Color.FromName("Window"); } titleField.Text = alert.getTitle(); messageBox.RichTextBox.Rtf = alert.getMessage(); advancedField1.Text = alert.getSchedule(); oneTimeField3.SelectedIndex = 0; timeDelayField2.SelectedIndex = 0; dayOfMonthField1.SelectedIndex = 0; dayOfMonthField3.SelectedIndex = 0; dayOfMonthField4.SelectedIndex = 0; dayOfWeekField1.SelectedIndex = 0; dayOfWeekField3.SelectedIndex = 0; positionalDayOfWeekField1.SelectedIndex = 0; positionalDayOfWeekField2.SelectedIndex = 0; positionalDayOfWeekField4.SelectedIndex = 0; positionalDayOfWeekField6.SelectedIndex = 0; this.setRadioButton(); if (alert.getSnoozed()) { MsgBox.Show("If you save, this alert will no longer be on snooze.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
public AdvancedSchedule( string advancedField ) { InitializeComponent(); alert = new Alert(); alert.setSchedule(advancedField); alert.setWakeUpTime(new DateTime()); setByDatesTimes(); setByTimeDelay(); }
public AlertDialog(Alert alert, String color, String soundFile) { InitializeComponent(); this.Text = "Alert!! - " + alert.getTitle(); this.alert = alert; messageBox.RichTextBox.Rtf = alert.getMessage(); try { messageBox.RichTextBox.BackColor = Color.FromArgb(System.Convert.ToInt32(color)); } catch { messageBox.RichTextBox.BackColor = Color.FromName("Window"); } alertLabel.Text = ""+alert.getWakeUpTime(); this.soundFile = soundFile; }
private bool save() { bool returnValue = false; Alert alert = new Alert(); int alertId = currentAlert.getAlertId(); alert.setAlertId(alertId); alert.setTitle(titleField.Text); alert.setMessage(messageBox.RichTextBox.Rtf); alert.setValid(currentAlert.getValid()); alert.setCommand(currentAlert.getCommand()); if (!soundField.Text.Equals(alert.getSound())) { alert.setSound(soundField.Text); } if (backgroundChanged) { alert.setBackground(""+messageBox.RichTextBox.BackColor.ToArgb()); } //Determine the schedule if (oneTimeRadio.Checked) { DateTime dt = oneTimeField1.Value; string[] time = extractTime(oneTimeField2.Text, oneTimeField3.Text); dt = new DateTime(dt.Year, dt.Month, dt.Day, System.Convert.ToInt32(time[0]), System.Convert.ToInt32(time[1]), 0); returnValue = alert.setSchedule(dt); } else if (timeDelayRadio.Checked) { DateTime dt = DateTime.Now; double howMuch = 0; try { howMuch = double.Parse(timeDelayField1.Text); } catch (Exception) { throw new Exception("Time Delay Field must be a number!"); } string howMany = timeDelayField2.Text; if (howMany.Equals("Minute(s)")) { dt = dt.AddMinutes(howMuch); } else if (howMany.Equals("Hour(s)")) { dt = dt.AddHours(howMuch); } else if (howMany.Equals("Day(s)")) { dt = dt.AddDays(howMuch); //Zero out the hours and minutes dt = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0); } else if (howMany.Equals("Week(s)")) { dt = dt.AddDays(howMuch*7); //Zero out the hours and minutes dt = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0); } returnValue = alert.setSchedule(dt); } else if (dayOfMonthRadio.Checked) { string dayOfMonth = "" + (dayOfMonthField1.SelectedIndex + 1); string[] time = extractTime(dayOfMonthField2.Text, dayOfMonthField3.Text); string month = "" + (dayOfMonthField4.SelectedIndex); if (month.Equals("0")) month = "*"; if (System.Convert.ToInt32(dayOfMonth) > 28) MsgBox.Show("Warning! No alert will be shown for months without the specified day!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information); returnValue = alert.setSchedule("*", month, dayOfMonth, "*", time[0], time[1]); } else if (dayOfWeekRadio.Checked) { string dayOfWeek = "" + dayOfWeekField1.SelectedIndex; if (dayOfWeek.Equals("0")) dayOfWeek = "*"; else if (dayOfWeek.Equals("7")) dayOfWeek = "0"; string[] time = extractTime(dayOfWeekField2.Text, dayOfWeekField3.Text); returnValue = alert.setSchedule("*", "*", "*", dayOfWeek, time[0], time[1]); } else if (advancedRadio.Checked) { returnValue = alert.setSchedule(advancedField1.Text); } else if (positionalDayOfWeekRadio.Checked) { int position = positionalDayOfWeekField1.SelectedIndex + 1; int dayOfWeek = ((positionalDayOfWeekField2.SelectedIndex+1) % 7); string month = "" + (positionalDayOfWeekField6.SelectedIndex); if (month.Equals("0")) month = "*"; string positionalDayOfWeek = ""+((position * 10) + dayOfWeek); string[] time = extractTime(positionalDayOfWeekField3.Text, positionalDayOfWeekField4.Text); returnValue = alert.setSchedule("*", month, "*", positionalDayOfWeek, time[0], time[1]); } else { throw new Exception("Nothing Selected"); } if (!returnValue) return false; alert.setValid(true); currentAlert = alert; return true; }
public Setup( Alert alert, string defaultColor ) { InitializeComponent(); init(alert,defaultColor); }
public void alertDialog(Alert alert) { while (true) { //Make sure it's time to show the dialog DateTime wakeup = alert.getWakeUpTime(); DateTime now = DateTime.Now; if( !alert.getValid() && !alert.getSnoozed() ) { if (alertsListView.IsHandleCreated == true) { alertsListView.Invoke(new UpdateListBoxCallback(UpdateManagerAlert), new object[] { alert }); } return; } else if (wakeup > now) { double msDifference = wakeup.Subtract(now).TotalMilliseconds; while (msDifference >= int.MaxValue) { Thread.Sleep(int.MaxValue); msDifference = wakeup.Subtract(now).TotalMilliseconds; } Thread.Sleep((int)msDifference); } //Take care of color, positioning, command execution, and sound AlertDialog alertDialog = new AlertDialog(alert, getBackground(alert), getSound(alert)); string positionType = controller.getSetting("WindowsPositioning"); if (positionType.Equals("center")) { alertDialog.center(); } else if (positionType.Equals("custom")) { Dictionary<string, int> settings = controller.getAlertSettings(); alertDialog.Location = new Point(settings["xpos"], settings["ypos"]); alertDialog.Size = new Size(settings["width"], settings["height"]); } //Show Dialog if (alertDialog.ShowDialog() == DialogResult.OK) { positionType = controller.getSetting("WindowsPositioning"); if (positionType.Equals("custom")) { controller.updateAlertSettings(alertDialog.Location.X, alertDialog.Location.Y, alertDialog.Size.Width, alertDialog.Size.Height); } alert = alertDialog.getCurrentAlert(); if (alertsListView.IsHandleCreated == true) { alertsListView.Invoke(new UpdateListBoxCallback(UpdateManagerAlert), new object[] { alert }); } if (alert.getRemoved()) { controller.deleteAlert(alert); return; } else if (!alert.getValid() && !alert.getSnoozed()) { controller.updateAlert(alert); return; } else { controller.updateAlert(alert); continue; } } } }
//Aborts and deletes the old thread private void removeAlertThread(Alert alert) { htAlertDialogs[alert.getAlertId()].Abort(); htAlertDialogs.Remove(alert.getAlertId()); }
//Aborts and deletes the old thread, then recreates it with the updated data private void recreateAlertThread(Alert alert) { removeAlertThread(alert); createAlertThread(alert); }
/** ArrayList contains Alert objects */ public Alert getUpdatedAlert( Alert alert ) { SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT AlertId, Title, Message, Year, DayOfMonth, Month, " + "DayOfWeek, Hour, Minute, Snoozed, Valid, WakeUpTime Background, " + "Sound, Command FROM Alerts WHERE AlertID = ?"; cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters[0].Value = alert.getAlertId(); SQLiteDataReader results = cmd.ExecuteReader(); if (results.Read()) { int alertId = results.GetInt32(0); string title = results.GetString(1); string message = results.GetString(2); string year = results.GetString(3); string dayOfMonth = results.GetString(4); string month = results.GetString(5); string dayOfWeek = results.GetString(6); string hour = results.GetString(7); string minute = results.GetString(8); bool snoozed = results.GetBoolean(9); bool valid = results.GetBoolean(10); DateTime wakeUpTime = results.GetDateTime(11); string background = results.GetString(12); string sound = results.GetString(13); string command = results.GetString(14); //Do not change the order of the following block, //otherwise snoozed and valid values may be set //incorrectly. alert.setAlertId(alertId); alert.setTitle(title); alert.setMessage(message); alert.setSchedule(year, month, dayOfMonth, dayOfWeek, hour, minute, false); alert.setWakeUpTime(wakeUpTime); alert.setSnoozed(snoozed); alert.setValid(valid); alert.setBackground(background); alert.setSound(sound); alert.setCommand(command); } cmd.Dispose(); return alert; }
private String getBackground( Alert alert ) { string background = alert.getBackground(); if (background.ToUpper().Equals("DEFAULT")) { return controller.getSetting("AlertBackground"); } return background; }
//Creates the alert thread and enters it into htAlertDialogs private void createAlertThread(Alert alert) { //Using an asynchronous delegate ThreadStart ts = delegate() { alertDialog(alert); }; Thread alertThread = new Thread(ts); alertThread.Start(); htAlertDialogs.Add(alert.getAlertId(), alertThread); }
//Adds the alert list view item private void addAlertListViewItem(Alert alert) { ListViewItem lvi = new ListViewItem(new string[4] { "", "" + alert.getAlertId(), alert.getTitle(), "" + alert.getWakeUpTime() }); if (alert.getValid()) lvi.Checked = true; alertsListView.Items.Add(lvi); }
//Called from the worker threads, don't need to worry about thread's updating //because the thread has taken care of itself by the time this is called. //This is the thread telling the main app to update itself. public void UpdateManagerAlert(Alert alert) { string alertId = ""+alert.getAlertId(); //Reset Alert in hashtable try { htAlerts.Remove(alertId); if (!alert.getRemoved()) { htAlerts.Add(alertId, alert); } } catch (Exception) { //ignore } //Updated List View Record foreach( ListViewItem lvi in alertsListView.Items ) { if( lvi.SubItems[1].Text.Equals( alertId ) ) { if (!alert.getRemoved()) { if (alert.getValid()) lvi.Checked = true; else lvi.Checked = false; lvi.SubItems[1].Text = "" + alert.getAlertId(); lvi.SubItems[2].Text = alert.getTitle(); lvi.SubItems[3].Text = "" + alert.getWakeUpTime(); sortAlertListView(); } else { alertsListView.Items[lvi.Index].Remove(); } return; } } }
public Alert createNewAlert( Alert alert ) { SQLiteCommand cmd; //Create a new Entry cmd = conn.CreateCommand(); cmd.CommandText = "INSERT INTO Alerts (Title, Message, Year, DayOfMonth, Month, DayOfWeek, Hour, " + "Minute, Snoozed, Valid, WakeUpTime, Background, Sound, Command) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters[0].Value = alert.getTitle(); cmd.Parameters[1].Value = alert.getMessage(); cmd.Parameters[2].Value = alert.getYear(); cmd.Parameters[3].Value = alert.getDayOfMonth(); cmd.Parameters[4].Value = alert.getMonth(); cmd.Parameters[5].Value = alert.getDayOfWeek(); cmd.Parameters[6].Value = alert.getHour(); cmd.Parameters[7].Value = alert.getMinute(); cmd.Parameters[8].Value = alert.getSnoozed(); cmd.Parameters[9].Value = alert.getValid(); cmd.Parameters[10].Value = alert.getWakeUpTime(); cmd.Parameters[11].Value = alert.getBackground(); cmd.Parameters[12].Value = alert.getSound(); cmd.Parameters[13].Value = alert.getCommand(); cmd.ExecuteNonQuery(); cmd.Dispose(); //Get the newly created AlertId. Rely on sqlite, hope for no multiple access of the table. cmd = conn.CreateCommand(); cmd.CommandText = "SELECT last_insert_rowid()"; int newAlertId = Convert.ToInt32(cmd.ExecuteScalar()); cmd.Dispose(); alert.setAlertId(newAlertId); return alert; }
/** ArrayList contains Alert objects */ private ArrayList getAlerts( String query ) { ArrayList alerts = new ArrayList(); SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = query; SQLiteDataReader results = cmd.ExecuteReader(); while (results.Read()) { int alertId = results.GetInt32(0); string title = results.GetString(1); string message = results.GetString(2); string year = results.GetString(3); string dayOfMonth = results.GetString(4); string month = results.GetString(5); string dayOfWeek = results.GetString(6); string hour = results.GetString(7); string minute = results.GetString(8); bool snoozed = results.GetBoolean(9); bool valid = results.GetBoolean(10); DateTime wakeUpTime = results.GetDateTime(11); string background = results.GetString(12); string sound = results.GetString(13); string command = results.GetString(14); //Do not change the order of the following block, //otherwise snoozed and valid values may be set //incorrectly. Alert alert = new Alert(); alert.setAlertId(alertId); alert.setTitle(title); alert.setMessage(message); alert.setSchedule(year, month, dayOfMonth, dayOfWeek, hour, minute, false); alert.setWakeUpTime(wakeUpTime); alert.setSnoozed(snoozed); alert.setValid(valid); alert.setBackground(background); alert.setSound(sound); alert.setCommand(command); alerts.Add(alert); } cmd.Dispose(); return alerts; }
public void updateAlert( Alert alert ) { if (alert.getAlertId() < 0) { throw new Exception("Invalid Alert Id"); } SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "UPDATE Alerts SET Title = ?, Message = ?, Year = ?, DayOfMonth = ?, Month = ?, " + "DayOfWeek = ?, Hour = ?, Minute = ?, Snoozed = ?, Valid = ?, WakeUpTime = ?, Background = ?, " + "Sound = ?, Command = ? WHERE AlertId = ?"; cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters.Add(cmd.CreateParameter()); cmd.Parameters[0].Value = alert.getTitle(); cmd.Parameters[1].Value = alert.getMessage(); cmd.Parameters[2].Value = alert.getYear(); cmd.Parameters[3].Value = alert.getDayOfMonth(); cmd.Parameters[4].Value = alert.getMonth(); cmd.Parameters[5].Value = alert.getDayOfWeek(); cmd.Parameters[6].Value = alert.getHour(); cmd.Parameters[7].Value = alert.getMinute(); cmd.Parameters[8].Value = alert.getSnoozed(); cmd.Parameters[9].Value = alert.getValid(); cmd.Parameters[10].Value = alert.getWakeUpTime(); cmd.Parameters[11].Value = alert.getBackground(); cmd.Parameters[12].Value = alert.getSound(); cmd.Parameters[13].Value = alert.getCommand(); cmd.Parameters[14].Value = alert.getAlertId(); cmd.ExecuteNonQuery(); cmd.Dispose(); }
private String getSound(Alert alert) { string soundFile = alert.getSound(); if (soundFile.ToUpper().Equals("USE DEFAULT")) { soundFile = controller.getSetting("AlertSound"); } return soundFile; }
public void deleteAlert( Alert alert ) { if (alert.getAlertId() < 0) throw new Exception("Invalid Alert Id"); SQLiteCommand cmd; cmd = conn.CreateCommand(); cmd.CommandText = "DELETE FROM Alerts WHERE AlertID = " + alert.getAlertId(); cmd.ExecuteNonQuery(); }