Skip to content

Commit fe4c57a

Browse files
Added route parameter formatter
1 parent f732af8 commit fe4c57a

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

DeveloperTools/Features/Routes/RoutesController.cs

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,44 @@ private IEnumerable<RouteModel> GetRouteModels()
105105
return model;
106106
}
107107

108-
private string GetEndpointParameters(RoutePattern pattern)
108+
private string GetEndpointParameters(RoutePattern pattern) =>
109+
string.Join(", ", pattern.Parameters.Select(FormatRoutePatternParameter));
110+
111+
private static string FormatRoutePatternParameter(RoutePatternParameterPart part)
109112
{
110-
return string.Join(", ",
111-
pattern.Parameters.Select(_ => _.Name));
113+
var builder = new StringBuilder();
114+
builder.Append('{');
115+
116+
if (part.IsCatchAll)
117+
{
118+
builder.Append('*');
119+
if (!part.EncodeSlashes)
120+
{
121+
builder.Append('*');
122+
}
123+
}
124+
125+
builder.Append(part.Name);
126+
127+
foreach (var constraint in part.ParameterPolicies)
128+
{
129+
builder.Append(':');
130+
builder.Append(constraint.ParameterPolicy);
131+
}
132+
133+
if (part.Default != null)
134+
{
135+
builder.Append('=');
136+
builder.Append(part.Default);
137+
}
138+
139+
if (part.IsOptional)
140+
{
141+
builder.Append('?');
142+
}
143+
144+
builder.Append('}');
145+
return builder.ToString();
112146
}
113147

114148
private string GetEndpointMethods(IGrouping<string, Endpoint> endpointGroup) =>

0 commit comments

Comments
 (0)