public void DeleteTask() { // TODO: Untestable, rewrite for unit testing. var selectedTaskName = ActiveForm.GetCurrentSelectedTaskName(); if (selectedTaskName == null) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoRowSelectedErrorMessage, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var result = messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.ConfirmTaskDeleteMessage, Settings.Default.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { // Remove selected task from display and memory: var selectedTask = QueryTask(selectedTaskName); ActiveForm.DeleteTaskFromDisplay(selectedTask); foreach (var category in Categories) { // Look for category of task: if (category.Name == selectedTask.Category) { category.Tasks.Remove(selectedTask); return; } } } }
public void EditTask() { // TODO: Untestable, rewrite for unit testing. var oldTaskName = ActiveForm.GetCurrentSelectedTaskName(); if (oldTaskName == null) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoRowSelectedErrorMessage, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var selectedTask = QueryTask(oldTaskName); DataInputDialog = dialogFactory.GetDialog(EDialog.StandardTask, selectedTask); DataInputDialog.AskUser(); if (DataInputDialog.IsDataProvided()) { var newTask = (ITask)DataInputDialog.ReturnValue; // Is new task and old task the same: if (selectedTask.Equals(newTask)) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.EditedTaskStillTheSameErrorMessage, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ICategory category; // Delete task from old category: if (selectedTask.Complete) { category = QueryCategory(Resources.CompletedTaskListText); } else { category = QueryCategory(selectedTask.Category); } category.Tasks.Remove(selectedTask); // Add task to new category: if (newTask.Complete) { category = QueryCategory(Resources.CompletedTaskListText); } else { category = QueryCategory(newTask.Category); } category.Tasks.Add(newTask); ActiveForm.EditTaskInDisplay(newTask, selectedTask); } else { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoDataProvidedErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } var dialog = (Form)DataInputDialog; dialog.Dispose(); }