Пример #1
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();
        }