Example #1
0
        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();
        }
Example #2
0
        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!
            }
        }