Пример #1
0
        /// <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);
        }
Пример #8
0
        /// <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
                };
            }
        }
Пример #9
0
 /// <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)");
     }
 }