internal void LinkToTask(Guid linkedTaskId, int storypoints) { var linkedTasks = new Dictionary <Guid, int>(this.LinkedTasks); linkedTasks.Add(linkedTaskId, storypoints); var newActivityValue = 0; switch (this.ActivityType) { case ActivityType.Percentage: newActivityValue = this.RecalculatePercentageActivityValue(linkedTasks, this.CompletedLinkedTasks); break; case ActivityType.Leveling: newActivityValue = this.RecalculateLevelingActivityValue(linkedTasks, this.CompletedLinkedTasks); break; default: throw new ArgumentOutOfRangeException(); } var taskLinkedToActivityEvent = new TaskLinkedToActivityEvent(this.AggregateId, linkedTaskId, storypoints, newActivityValue); this.RaiseEvent(taskLinkedToActivityEvent); }
private void Apply(TaskLinkedToActivityEvent obj) { this.LinkedTasks.Add(obj.TaskId, obj.Storypoints); this.ActivityValue = obj.NewActivityValue; }