Пример #1
0
        private void ChangeTaskState(ManagedTaskDto task, ManagedTaskState originalState)
        {
            if (!Enum.IsDefined(typeof(ManagedTaskState), task.State))
            {
                throw new InvalidOperationException("Заданного состояния не существует");
            }

            if (task.State == ManagedTaskState.Paused && originalState != ManagedTaskState.Executing)
            {
                throw new InvalidOperationException("Статус \"Приостановлена\" может быть присвоен только задачам со статусом \"Выполняется\"");
            }

            if (task.State == ManagedTaskState.Completed)
            {
                if (originalState != ManagedTaskState.Executing || !SubTasksCanBeCompleted(task))
                {
                    throw new InvalidOperationException("Статус \"Завершена\" может быть присвоен только задачам со статусом \"Выполняется\"," +
                                                        " подзадачи которых также имеют статус \"Выполняется\" или \"Завершена\"");
                }
                task.DateOfCompletion = DateTime.Now;
                CompleteSubTasks(task);
            }
        }
Пример #2
0
 private void SetTaskState(ManagedTaskDto task, ManagedTaskState newState)
 {
     task.State            = newState;
     task.DateOfCompletion = DateTime.Now;
     SaveTask(task);
 }