//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); }
//Aborts and deletes the old thread private void removeAlertThread(Alert alert) { htAlertDialogs[alert.getAlertId()].Abort(); htAlertDialogs.Remove(alert.getAlertId()); }
//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 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(); }
/** 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; }
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(); }