Ejemplo n.º 1
0
        private static string GetEvents(IReadOnlyCollection <ExecutableTarget> executableTargets)
        {
            var builder = new StringBuilder();

            // When not hovering anything, highlight the default plan
            var defaultTarget = executableTargets.SingleOrDefault(x => x.IsDefault);
            var defaultPlan   = defaultTarget != null
                ? ExecutionPlanner.GetExecutionPlan(executableTargets, new[] { defaultTarget?.Name })
                : new ExecutableTarget[0];

            defaultPlan.ForEach(x => builder.AppendLine($@"  $(""#{x.Name}"").addClass('highlight');"));

            foreach (var executableTarget in executableTargets)
            {
                var executionPlan = ExecutionPlanner.GetExecutionPlan(executableTargets, new[] { executableTarget.Name });
                builder
                .AppendLine($@"  $(""#{executableTarget.Name}"").hover(")
                .AppendLine("    function() {");
                executableTargets.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").removeClass('highlight');"));
                executionPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").addClass('highlight');"));
                builder
                .AppendLine("    },")
                .AppendLine("    function() {");
                executionPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").removeClass('highlight');"));
                defaultPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").addClass('highlight');"));
                builder
                .AppendLine("    });");
            }

            return(builder.ToString());
        }
Ejemplo n.º 2
0
        private static string GetEvents(IReadOnlyCollection <ExecutableTarget> executableTargets)
        {
            var builder = new StringBuilder();

            // When not hovering anything, highlight the default plan
            var defaultPlan = executableTargets.Where(x => x.IsDefault)
                              .SelectMany(x => ExecutionPlanner.GetExecutionPlan(executableTargets, new[] { x.Name }))
                              .Distinct().ToList();

            defaultPlan.ForEach(x => builder.AppendLine($@"  $(""#{x.Name}"").addClass('highlight');"));

            foreach (var executableTarget in executableTargets)
            {
                var executionPlan = ExecutionPlanner.GetExecutionPlan(executableTargets, new[] { executableTarget.Name });
                builder
                .AppendLine($@"  $(""#{executableTarget.Name}"").hover(")
                .AppendLine("    function() {");
                executableTargets.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").removeClass('highlight');"));
                executionPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").addClass('highlight');"));
                builder
                .AppendLine("    },")
                .AppendLine("    function() {");
                executionPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").removeClass('highlight');"));
                defaultPlan.ForEach(x => builder.AppendLine($@"        $(""#{x.Name}"").addClass('highlight');"));
                builder
                .AppendLine("    });");
            }

            return(builder.ToString());
        }