private void ProcessBeforeChildrenVisited(TreeNode node)
        {
            if (node is TimedNode timedNode)
            {
                timedNode.Index = index;
                index++;
            }

            if (node is Task task)
            {
                AnalyzeTask(task);
            }
            else if (node is Target target)
            {
                AnalyzeTarget(target);
            }
            else if (node is Message message)
            {
                AnalyzeMessage(message);
            }
            else if (node is NamedNode folder)
            {
                if (folder.Name == "Evaluation")
                {
                    ImportTreeAnalyzer.Analyze(folder, build.StringTable);
                }
            }
        }
        private void ProcessProjectImported(ProjectImportedEventArgs args)
        {
            var import = ImportTreeAnalyzer.TryGetImportOrNoImport(args, stringTable);

            if (import == null)
            {
                return;
            }

            var evaluationId = args.BuildEventContext.EvaluationId;
            var evaluation   = construction.Build.FindEvaluation(evaluationId);

            if (evaluation != null)
            {
                evaluation.AddImport(import);
            }
        }