public void RenameCategory() { // TODO: Untestable, rewrite for unit testing. var selectedCategoryName = ActiveForm.GetCurrentSelectedCategoryName(); // Check if user tries to change name of special categories: if (selectedCategoryName == Resources.CompletedTaskListText || selectedCategoryName == Resources.DefaultTaskCategoryName) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.RenameSpecialListErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Ask user for new category name: DataInputDialog = dialogFactory.GetDialog(EDialog.StringInput, Resources.RenameCategoryDialogText); DataInputDialog.AskUser(); if (DataInputDialog.IsDataProvided()) { var newCategoryName = (string)DataInputDialog.ReturnValue; var categoryToBeRenamed = QueryCategory(selectedCategoryName); // Change category name to new one in settings, display and memory: foreach (var category in Categories) { if (category.Name == selectedCategoryName) { var index = Settings.Default.Categories.IndexOf(selectedCategoryName); Settings.Default.Categories.RemoveAt(index); Settings.Default.Categories.Add(newCategoryName); Settings.Default.Save(); ActiveForm.RenameCategoryInDisplay(categoryToBeRenamed, newCategoryName); category.Name = newCategoryName; break; } } } else { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoDataProvidedErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } var dialog = (Form)DataInputDialog; dialog.Dispose(); }
public void AddCategory() { // TODO: Untestable, rewrite for unit testing. // Ask user for category data: DataInputDialog = dialogFactory.GetDialog(EDialog.StringInput, Resources.CategoryNameInputDialogText); DataInputDialog.AskUser(); if (DataInputDialog.IsDataProvided()) { var addedCategory = categoryFactory.GetCategory(ECategory.Standard); addedCategory.Name = (string)DataInputDialog.ReturnValue; addedCategory.Tasks = new List <ITask>(); // Check if user tries to add category that already exists: var equalSearchCategory = QueryCategory((string)DataInputDialog.ReturnValue); if (equalSearchCategory != null) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.CategoryAlreadyExistsErrorMessage, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Categories.Add(addedCategory); Settings.Default.Categories.Add(addedCategory.Name); Settings.Default.Save(); ActiveForm.AddCategoryToDisplay(addedCategory); // TODO: Prepare storage access for new categories! } else { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoDataProvidedErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } var dialog = (Form)DataInputDialog; dialog.Dispose(); }
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(); }
public void AddTask() { // TODO: Untestable, rewrite for unit testing. // Ask user for category data: DataInputDialog = dialogFactory.GetDialog(EDialog.StandardTask); DataInputDialog.AskUser(); if (DataInputDialog.IsDataProvided()) { var tsk = (ITask)DataInputDialog.ReturnValue; // Look for proper category in memory to add new task, after that - display it: foreach (var item in Categories) { // Check if task provided already exists in this category: if (item.Tasks.Contains(tsk)) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, string.Format(Resources.TaskAlreadyExistsErrorMessage, item.Name), Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (tsk.Complete) { if (item.Name == Resources.CompletedTaskListText) { item.Tasks.Add(tsk); } else { continue; } break; } else { if (item.Name == tsk.Category) { item.Tasks.Add(tsk); } else { continue; } break; } } ActiveForm.AddTaskToDisplay(tsk); } else { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.NoDataProvidedErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } var dialog = (Form)DataInputDialog; dialog.Dispose(); }