/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public virtual void InitialiseStatus(ItemBuildStatus newStatus) { // Store the last elapsed time if (currentStatus != null) { var elapsedTime = currentStatus.TimeCompleted - currentStatus.TimeStarted; if (elapsedTime.HasValue) { if (elapsedTimes.Count >= 8) { elapsedTimes.RemoveAt(7); } elapsedTimes.Insert(0, elapsedTime.Value); } } // Initialise the status with the default value - do not re-initialise if the status is already set if ((currentStatus == null) || (currentStatus.Status != newStatus)) { currentStatus = new ItemStatus { Name = Name, Description = Description, Status = newStatus, TimeCompleted = null, TimeOfEstimatedCompletion = null, TimeStarted = null }; } }
/// <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); }
/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public override void InitialiseStatus(ItemBuildStatus newStatus) { // If the status is already set, do not change it if ((this.CurrentStatus == null) || (this.CurrentStatus.Status != newStatus)) { // This needs to be called first, otherwise the status is not set up this.taskStatuses.Clear(); this.elseTaskStatuses.Clear(); base.InitialiseStatus(newStatus); this.mainStatus = this.InitialiseTaskStatuses(newStatus, this.Tasks, this.taskStatuses, "Tasks (Main)"); this.elseStatus = this.InitialiseTaskStatuses(newStatus, this.ElseTasks, this.elseTaskStatuses, "Tasks (Else)"); } }
/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public override void InitialiseStatus(ItemBuildStatus newStatus) { // Do not re-initialise if the status is already set if ((this.CurrentStatus == null) || (this.CurrentStatus.Status != newStatus)) { // This needs to be called first, otherwise the status is not set up taskStatuses.Clear(); base.InitialiseStatus(newStatus); // Add each status if (Tasks != null) { foreach (ITask task in Tasks) { ItemStatus taskItem = null; 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); taskItem.Status = newStatus; } // Only add the item if it has been initialised if (taskItem != null) { CurrentStatus.AddChild(taskItem); taskStatuses.Add(task, taskItem); } } } } }
/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public override void InitialiseStatus(ItemBuildStatus newStatus) { // Do not re-initialise if the status is already set if ((this.CurrentStatus == null) || (this.CurrentStatus.Status != newStatus)) { // This needs to be called first, otherwise the status is not set up taskStatuses.Clear(); base.InitialiseStatus(newStatus); // Add each status if (Tasks != null) { foreach (ITask task in Tasks) { ItemStatus taskItem = null; 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); taskItem.Status = newStatus; } // Only add the item if it has been initialised if (taskItem != null) { CurrentStatus.AddChild(taskItem); taskStatuses.Add(task, taskItem); } } } } }
/// <summary> /// Converts a <see cref="ItemBuildStatus"/> to a <see cref="TaskSummaryStatus"/>. /// </summary> /// <param name="status">The <see cref="ItemBuildStatus"/>.</param> /// <returns> /// The <see cref="TaskSummaryStatus"/>. /// </returns> private static TaskSummaryStatus Convert(ItemBuildStatus status) { switch (status) { case ItemBuildStatus.Cancelled: return TaskSummaryStatus.Cancelled; case ItemBuildStatus.CompletedFailed: return TaskSummaryStatus.CompletedFailed; case ItemBuildStatus.CompletedSuccess: return TaskSummaryStatus.CompletedSuccess; case ItemBuildStatus.Pending: return TaskSummaryStatus.Pending; case ItemBuildStatus.Running: return TaskSummaryStatus.Running; } return TaskSummaryStatus.Unknown; }
/// <summary> /// Converts a <see cref="ItemBuildStatus"/> to a <see cref="TaskSummaryStatus"/>. /// </summary> /// <param name="status">The <see cref="ItemBuildStatus"/>.</param> /// <returns> /// The <see cref="TaskSummaryStatus"/>. /// </returns> private static TaskSummaryStatus Convert(ItemBuildStatus status) { switch (status) { case ItemBuildStatus.Cancelled: return(TaskSummaryStatus.Cancelled); case ItemBuildStatus.CompletedFailed: return(TaskSummaryStatus.CompletedFailed); case ItemBuildStatus.CompletedSuccess: return(TaskSummaryStatus.CompletedSuccess); case ItemBuildStatus.Pending: return(TaskSummaryStatus.Pending); case ItemBuildStatus.Running: return(TaskSummaryStatus.Running); } return(TaskSummaryStatus.Unknown); }
/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public virtual void InitialiseStatus(ItemBuildStatus newStatus) { // Store the last elapsed time if (currentStatus != null) { var elapsedTime = currentStatus.TimeCompleted - currentStatus.TimeStarted; if (elapsedTime.HasValue) { if (elapsedTimes.Count >= 8) { elapsedTimes.RemoveAt(7); } elapsedTimes.Insert(0, elapsedTime.Value); } } // Initialise the status with the default value - do not re-initialise if the status is already set if ((currentStatus == null) || (currentStatus.Status != newStatus)) { currentStatus = new ItemStatus { Name = Name, Description = Description, Status = newStatus, TimeCompleted = null, TimeOfEstimatedCompletion = null, TimeStarted = null }; } }
/// <summary> /// Records a source control operation. /// </summary> /// <param name="operation">The operation to record.</param> /// <param name="status">The status of the operation.</param> public virtual void RecordSourceControlOperation(SourceControlOperation operation, ItemBuildStatus status) { if (sourceControlOperations.ContainsKey(operation)) { sourceControlOperations[operation].Status = status; switch (status) { case ItemBuildStatus.Running: sourceControlOperations[operation].TimeStarted = DateTime.Now; break; case ItemBuildStatus.CompletedFailed: case ItemBuildStatus.CompletedSuccess: sourceControlOperations[operation].TimeCompleted = DateTime.Now; break; } } }
/// <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; }
/// <summary> /// Initialise an <see cref="ItemStatus"/>. /// </summary> /// <param name="newStatus">The new status.</param> public override void InitialiseStatus(ItemBuildStatus newStatus) { // If the status is already set, do not change it if ((this.CurrentStatus == null) || (this.CurrentStatus.Status != newStatus)) { // This needs to be called first, otherwise the status is not set up this.taskStatuses.Clear(); this.elseTaskStatuses.Clear(); base.InitialiseStatus(newStatus); this.mainStatus = this.InitialiseTaskStatuses(newStatus, this.Tasks, this.taskStatuses, "Tasks (Main)"); this.elseStatus = this.InitialiseTaskStatuses(newStatus, this.ElseTasks, this.elseTaskStatuses, "Tasks (Else)"); } }