Skip to content

Commit 6fa8ebb

Browse files
Chris Martinezcommonsensesoftware
authored andcommitted
Do not apply formatting for segment/slash based keys
1 parent 1610914 commit 6fa8ebb

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/Common.OData.ApiExplorer/AspNet.OData/Routing/ODataRouteBuilder.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ void AppendEntityKeysFromConvention( StringBuilder builder )
177177

178178
var useParentheses = Context.UrlKeyDelimiter == Parentheses;
179179
var keySeparator = ',';
180+
var keyAsSegment = false;
180181

181182
if ( useParentheses )
182183
{
@@ -185,6 +186,7 @@ void AppendEntityKeysFromConvention( StringBuilder builder )
185186
else
186187
{
187188
keySeparator = '/';
189+
keyAsSegment = true;
188190
builder.Append( keySeparator );
189191
}
190192

@@ -199,7 +201,7 @@ void AppendEntityKeysFromConvention( StringBuilder builder )
199201
for ( var i = 1; i < entityKeys.Length; i++ )
200202
{
201203
builder.Append( keySeparator );
202-
ExpandParameterTemplate( builder, entityKeys[i], parameterKeys[i].Name );
204+
ExpandParameterTemplate( builder, entityKeys[i], parameterKeys[i].Name, keyAsSegment );
203205
}
204206
}
205207

@@ -280,13 +282,16 @@ void AppendParametersFromConvention( StringBuilder builder, IEdmOperation operat
280282
}
281283
}
282284

283-
void ExpandParameterTemplate( StringBuilder template, IEdmStructuralProperty key ) => ExpandParameterTemplate( template, key.Type, key.Name );
285+
void ExpandParameterTemplate( StringBuilder template, IEdmStructuralProperty key ) =>
286+
ExpandParameterTemplate( template, key.Type, key.Name, keyAsSegment: false );
284287

285-
void ExpandParameterTemplate( StringBuilder template, IEdmStructuralProperty key, string name ) => ExpandParameterTemplate( template, key.Type, name );
288+
void ExpandParameterTemplate( StringBuilder template, IEdmStructuralProperty key, string name, bool keyAsSegment = false ) =>
289+
ExpandParameterTemplate( template, key.Type, name, keyAsSegment );
286290

287-
void ExpandParameterTemplate( StringBuilder template, IEdmOperationParameter parameter, string name ) => ExpandParameterTemplate( template, parameter.Type, name );
291+
void ExpandParameterTemplate( StringBuilder template, IEdmOperationParameter parameter, string name ) =>
292+
ExpandParameterTemplate( template, parameter.Type, name, keyAsSegment: false );
288293

289-
void ExpandParameterTemplate( StringBuilder template, IEdmTypeReference typeReference, string name )
294+
void ExpandParameterTemplate( StringBuilder template, IEdmTypeReference typeReference, string name, bool keyAsSegment )
290295
{
291296
Contract.Requires( template != null );
292297
Contract.Requires( typeReference != null );
@@ -299,7 +304,7 @@ void ExpandParameterTemplate( StringBuilder template, IEdmTypeReference typeRefe
299304
template.Append( name );
300305
template.Append( "}" );
301306

302-
if ( Context.RouteTemplateGeneration == Server )
307+
if ( Context.RouteTemplateGeneration == Server || keyAsSegment )
303308
{
304309
return;
305310
}

0 commit comments

Comments
 (0)