/// <summary> /// Initialises the task statuses. /// </summary> /// <param name="newStatus">The new status.</param> /// <param name="tasks">The tasks.</param> /// <param name="taskStatuses">The task statuses.</param> /// <param name="title">The title.</param> /// <returns></returns> private ItemStatus InitialiseTaskStatuses( ItemBuildStatus newStatus, ITask[] tasks, Dictionary <ITask, ItemStatus> taskStatuses, string title) { var groupStatus = new ItemStatus { Name = title, Status = newStatus, TimeCompleted = null, TimeOfEstimatedCompletion = null, TimeStarted = null }; this.CurrentStatus.AddChild(groupStatus); if (tasks != null) { foreach (var task in tasks) { ItemStatus taskItem; var tbase = task as TaskBase; if (tbase != null) { // Reset the status for the task tbase.InitialiseStatus(newStatus); } var dummy = task as IStatusSnapshotGenerator; if (dummy != null) { taskItem = dummy.GenerateSnapshot(); } else { taskItem = new ItemStatus(task.GetType().Name) { Status = newStatus }; } // Only add the item if it has been initialised if (taskItem != null) { groupStatus.AddChild(taskItem); taskStatuses.Add(task, taskItem); } } } return(groupStatus); }