//Saves Task, used by RepeatableTask.SaveTask() public void SaveRepeatTask(RepeatableTask savedTask) { if (doesTaskExist(savedTask.getTaskId())) { MySqlConnection conn = null; try { conn = new MySqlConnection(connectionString); conn.Open(); MySqlCommand cmd = new MySqlCommand("UPDATE `Task` SET `title` = @title, `notes` = @notes," + "`allowNotifications` = @allowNotifications, `isComplete` = @isComplete, `isRepeatable` = @isRepeatable," + "`taskFKey` = @taskFKey WHERE `taskId` = @taskId", conn); cmd.Parameters.Add(new MySqlParameter("taskId", savedTask.getTaskId())); cmd.Parameters.Add(new MySqlParameter("title", savedTask.getTitle())); cmd.Parameters.Add(new MySqlParameter("notes", savedTask.getDescription())); cmd.Parameters.Add(new MySqlParameter("allowNotifications", savedTask.getAllowNotifications())); cmd.Parameters.Add(new MySqlParameter("isComplete", savedTask.getIsComplete())); cmd.Parameters.Add(new MySqlParameter("isRepeatable", false)); cmd.Parameters.Add(new MySqlParameter("taskFKey", savedTask.getTaskId())); cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine("SaveRepeatTask Failure!" + ex); } finally { if (conn != null) { conn.Close(); } } } }
public List <Task> LoadList(int userId) { List <Task> taskList = new List <Task>(); MySqlConnection conn = null; MySqlCommand command = null; try { conn = new MySqlConnection(connectionString); conn.Open(); command = new MySqlCommand( "SELECT * FROM `Task` WHERE `taskFKey` = @userId;", conn ); command.Parameters.AddWithValue("@userId", userId); MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { int Rindex = 0; int Dindex = 0; if (reader.GetValue(5).Equals(1)) { RepeatableTask currentTask = new RepeatableTask((String)reader.GetValue(1), (String)reader.GetValue(3), new Dictionary <int, SubTask>(Rindex, reader.GetValue(4))); taskList.Add(currentTask); } else { DisposableTask currentTask = new DisposableTask((String)reader.GetValue(1), (String)reader.GetValue(3), new Dictionary <int, SubTask>(Dindex, reader.GetValue(4))); taskList.Add(currentTask); } Rindex++; Dindex++; } return(taskList); } catch (Exception ex) { Console.WriteLine("Something went horribly wrong! " + ex); return(new List <Task>()); } finally { if (conn != null) { conn.Close(); } } }
//if createTask is clicked private void backToDash(object sender, RoutedEventArgs e) { taskTitle = this.taskTitleText.Text; taskDesc = this.descText.Text; if (this.yesRadio.IsChecked == true) { this.repeatable = true; //create repeatableTask RepeatableTask rt = new RepeatableTask(taskTitle, taskDesc, dict); rt.setTaskFKey(user.UserId); rt.SaveTask(); //save task to db list.Add(rt); Dashboard dash = new Dashboard(user); NavigationService.Navigate(dash); } else if (this.noRadio.IsChecked == true) { repeatable = false; //create disposableTask DisposableTask dt = new DisposableTask(taskTitle, taskDesc, dict); dt.setTaskFKey(user.UserId); //dt.setTaskFKey(55); //TODO user.UserId does not return the correct ID dt.SaveTask(); //save task to db list.Add(dt); Dashboard dash = new Dashboard(user); NavigationService.Navigate(dash); } //NavigationService nav = NavigationService.GetNavigationService(this); // nav.Navigate(new Uri("/GUI/Dashboard.xaml", UriKind.RelativeOrAbsolute)); }
//Inserts new Repeatable task into the table public int InsertRepeatTask(RepeatableTask newTask) { MySqlConnection conn = null; MySqlCommand command = null; int taskId = 0; try { conn = new MySqlConnection(connectionString); conn.Open(); command = new MySqlCommand("INSERT INTO `Task` (`title`,`notes`,`allowNotifications`, `isComplete`,`isRepeatable`) " + "VALUES(@title, @notes, @allowNotifications, @isComplete, @isRepeatable);" + "SELECT `taskId` AS `taskId` FROM `Task` WHERE `taskId` = @@Identity;", conn); command.Parameters.AddWithValue("@title", newTask.getTitle()); command.Parameters.AddWithValue("@notes", newTask.getDescription()); command.Parameters.AddWithValue("@allowNotifications", newTask.getAllowNotifications()); command.Parameters.AddWithValue("@isComplete", newTask.getIsComplete()); command.Parameters.AddWithValue("@isRepeatable", 1); MySqlDataReader reader = command.ExecuteReader(); taskId = (int)reader.GetValue(0); } catch (Exception ex) { Console.WriteLine("InsertDisposableTask: Failure!" + ex); } finally { if (conn != null) { conn.Close(); } } return(taskId); }
//Pulls Repeatable task from db public RepeatableTask retrieveRepeatTask(int taskId) { MySqlConnection conn = null; RepeatableTask repeatTask = null; if (doesTaskExist(taskId)) { try { conn = new MySqlConnection(connectionString); conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT* from `Task` WHERE `TaskId` = @taskId", conn); cmd.Parameters.Add(new MySqlParameter("taskId", taskId)); MySqlDataReader reader = cmd.ExecuteReader(); repeatTask.setTaskId((int)reader.GetValue(0)); //TaskId repeatTask.setTitle((String)reader.GetValue(1)); //Title repeatTask.setDescription((String)reader.GetValue(2)); //Description repeatTask.setAllowNotifications((Boolean)reader.GetValue(3)); //allowNotifications repeatTask.setIsComplete((Boolean)reader.GetValue(4)); //isComplete } catch (Exception ex) { Console.WriteLine("retrieveRepeatTask Failed!" + ex); } finally { if (conn != null) { conn.Close(); } } repeatTask.setSubTasks(FetchAllSubTasks(taskId)); } return(repeatTask); }