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 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();
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }