Ejemplo n.º 1
0
        private Positioned PositionSegment(IRoutingSegment segment)
        {
            var lines = new List <string>
            {
                "Route: " + (segment.Name ?? "<anonymous>")
            };

            var longestLine = lines.Select(l => l.Length).Max();

            var positioned = new Positioned
            {
                Width      = longestLine * 6.5f,
                Height     = TextHeight * (lines.Count + 2),
                DrawAction = (d, p) =>
                {
                    if (p.Siblings.Count > 0)
                    {
                        var maxSiblingX = p.Siblings.Select(s => s.X.Value).Max();
                        DrawLine(d, p.X + p.Width, p.Y + TextHeight, maxSiblingX, p.Y + TextHeight, "segment");
                    }
                    DrawBox(d, p.X, p.Y, p.Width, lines, "segment", 2f);
                }
            };

            if (segment.Middleware != null)
            {
                positioned.Siblings = segment
                                      .Middleware
                                      .Select(PositionMiddleware)
                                      .ToList();
            }

            return(positioned);
        }
Ejemplo n.º 2
0
        private void Dump(IRoutingSegment segment, string indent)
        {
            Debug.WriteLine(indent + "has route \"" + (segment.Name ?? "<anonymous>") + "\"");

            indent += "  ";
            foreach (var middleware in segment.Middleware)
            {
                Dump(middleware, indent);
            }
        }