Esempio n. 1
0
        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,
            });
        }