public override bool Equals(object obj) { ProjectEventContext other = obj as ProjectEventContext; return(other != null && base.Equals(obj) && ProjectId == other.ProjectId); }
// ProjectStartedEventArgs => ProjectStartedEvent private Event ProjectStartedEvent(BuildEventArgs buildEvent) { ProjectStartedEventArgs e = buildEvent as ProjectStartedEventArgs; Debug.Assert(e != null); ProjectEventContext parentContext = null; if (e.ParentProjectBuildEventContext != null && e.ParentProjectBuildEventContext != BuildEventContext.Invalid) { // the context refers to the parent project, although it's a task who requests the build of the project Debug.Assert(e.ParentProjectBuildEventContext.TargetId == BuildEventContext.InvalidTargetId); Debug.Assert(e.ParentProjectBuildEventContext.TaskId == BuildEventContext.InvalidTaskId); parentContext = new ProjectEventContext() { NodeId = e.ParentProjectBuildEventContext.NodeId, ContextId = e.ParentProjectBuildEventContext.ProjectContextId, ProjectId = e.ParentProjectBuildEventContext.ProjectInstanceId, }; } return(new ProjectStartedEvent() { Context = new ProjectEventContext() { NodeId = e.BuildEventContext.NodeId, ContextId = e.BuildEventContext.ProjectContextId, ProjectId = e.BuildEventContext.ProjectInstanceId }, Message = e.Message, Timestamp = e.Timestamp, ParentEventContext = parentContext, ProjectFile = e.ProjectFile, ProjectId = e.ProjectId, }); }