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 DeleteCategory() { // TODO: Untestable, rewrite for unit testing. var categoryName = ActiveForm.GetCurrentSelectedCategoryName(); var selectedCategory = QueryCategory(categoryName); // Check if user tries to delete special categories (default and complete): if (selectedCategory.Name == Resources.CompletedTaskListText || selectedCategory.Name == Resources.DefaultTaskCategoryName) { messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.DeleteSpecialListErrorText, Settings.Default.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var result = messageBoxFactory.ShowMessageBox( EMessageBox.Standard, Resources.ConfirmCategoryDeleteMessage, Settings.Default.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { // Remove selected category from display, settings and memory: ActiveForm.DeleteCategoryFromDisplay(selectedCategory); Settings.Default.Categories.Remove(selectedCategory.Name); Settings.Default.Save(); Categories.Remove(selectedCategory); // TODO: Remove category from storage! } }