public void SetDoneTest() { _task.Weight = 1; Assert.IsTrue(_task.IsNotDone); _task.SetDone(); Assert.IsFalse(_task.IsNotDone); }
/// <summary> /// Worker has finished a task, he push it to done in the TaskManager /// </summary> /// <param name="task"></param> public void SetDone(SymuTask task) { if (task is null) { throw new ArgumentNullException(nameof(task)); } if (!task.IsAssigned) { // Task has been cancelled return; } task.UnAssign(); var todo = ToDo.Contains(task); var inProgress = InProgress.Contains(task); if (todo) { ToDo.Remove(task); } else if (inProgress) { InProgress.Remove(task); } else { return; } task.SetDone(); if (_debug) { Done.Add(task); } // We don't want to track message as Task if (task.Parent is Message) { return; } if (todo) { TaskResult.ToDo--; } else { TaskResult.InProgress--; } TaskResult.Done++; TaskResult.WeightDone += task.Weight; TaskResult.Incorrectness += (int)task.Incorrectness; }