private void GenerateSourceControlOperation(SourceControlOperation operation) { ItemStatus sourceControlStatus = null; if (this.sourceControl is IStatusItem) { var item = this.sourceControl as IStatusItem; item.InitialiseStatus(); sourceControlStatus = item.GenerateSnapshot(); } else if (SourceControl is IStatusSnapshotGenerator) { sourceControlStatus = (SourceControl as IStatusSnapshotGenerator).GenerateSnapshot(); } else { sourceControlStatus = new ItemStatus( string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}: {1}", SourceControl.GetType().Name, operation)); sourceControlStatus.Status = ItemBuildStatus.Pending; } // Only add the item if it has been initialised if (sourceControlStatus != null) { currentProjectStatus.AddChild(sourceControlStatus); sourceControlOperations.Add(operation, sourceControlStatus); } }
/// <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; } } }