Skip to content

Commit 341b18f

Browse files
committedNov 17, 2022
Minor code clean up
1 parent f768005 commit 341b18f

File tree

3 files changed

+54
-44
lines changed

3 files changed

+54
-44
lines changed
 

‎src/AspNetCore/WebApi/src/Asp.Versioning.Http/Builder/EndpointBuilderFinalizer.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ private static void Finialize( EndpointBuilder endpointBuilder, ApiVersionSet? v
3232
{
3333
if ( versionSet is null )
3434
{
35-
// this should be impossible because WithApiVersionSet had to be called to get here
35+
// this could only happen if the ApiVersionSet was removed elsewhere from the metadata
3636
endpointBuilder.Metadata.Add( ApiVersionMetadata.Empty );
3737
return;
3838
}
@@ -56,7 +56,7 @@ private static void Finialize( EndpointBuilder endpointBuilder, ApiVersionSet? v
5656
endpointBuilder.RequestDelegate = requestDelegate;
5757
}
5858

59-
var parameterSource = endpointBuilder.ApplicationServices.GetRequiredService<IApiVersionParameterSource>();
59+
var parameterSource = services.GetRequiredService<IApiVersionParameterSource>();
6060

6161
if ( parameterSource.VersionsByMediaType() )
6262
{
@@ -122,10 +122,10 @@ private static bool ReportApiVersions( IList<object> metadata )
122122
{
123123
for ( var i = metadata.Count - 1; i >= 0; i-- )
124124
{
125-
if ( metadata[i] is ApiVersionSet set )
125+
if ( metadata[i] is ApiVersionSet versionSet )
126126
{
127127
metadata.RemoveAt( i );
128-
return set;
128+
return versionSet;
129129
}
130130
}
131131

‎src/AspNetCore/WebApi/src/Asp.Versioning.Http/Builder/IEndpointConventionBuilderExtensions.cs

+26-26
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public static TBuilder WithApiVersionSet<TBuilder>(
3232
throw new ArgumentNullException( nameof( apiVersionSet ) );
3333
}
3434

35-
builder.Add( endpoint => AddWithValidation( endpoint, apiVersionSet ) );
35+
builder.Add( endpoint => AddMetadata( endpoint, apiVersionSet ) );
3636
builder.Finally( EndpointBuilderFinalizer.FinalizeEndpoints );
3737

3838
return builder;
@@ -393,7 +393,7 @@ public static TBuilder ReportApiVersions<TBuilder>( this TBuilder builder )
393393
return builder;
394394
}
395395

396-
private static void AddWithValidation( EndpointBuilder builder, ApiVersionSet versionSet )
396+
private static void AddMetadata( EndpointBuilder builder, ApiVersionSet versionSet )
397397
{
398398
var metadata = builder.Metadata;
399399
var grouped = builder.ApplicationServices.GetService( typeof( ApiVersionSetBuilder ) ) is not null;
@@ -414,30 +414,6 @@ private static void AddWithValidation( EndpointBuilder builder, ApiVersionSet ve
414414
metadata.Add( versionSet );
415415
}
416416

417-
private static void AdvertiseInApiVersionSet( IList<object> metadata, ApiVersion apiVersion )
418-
{
419-
for ( var i = metadata.Count - 1; i >= 0; i-- )
420-
{
421-
if ( metadata[i] is ApiVersionSet versionSet )
422-
{
423-
versionSet.AdvertisesApiVersion( apiVersion );
424-
break;
425-
}
426-
}
427-
}
428-
429-
private static void AdvertiseDeprecatedInApiVersionSet( IList<object> metadata, ApiVersion apiVersion )
430-
{
431-
for ( var i = metadata.Count - 1; i >= 0; i-- )
432-
{
433-
if ( metadata[i] is ApiVersionSet versionSet )
434-
{
435-
versionSet.AdvertisesDeprecatedApiVersion( apiVersion );
436-
break;
437-
}
438-
}
439-
}
440-
441417
private static void AddMetadata( EndpointBuilder builder, object item )
442418
{
443419
var metadata = builder.Metadata;
@@ -467,6 +443,30 @@ private static void AddMetadata( EndpointBuilder builder, object item )
467443
nameof( IEndpointRouteBuilderExtensions.WithApiVersionSet ) ) );
468444
}
469445

446+
private static void AdvertiseInApiVersionSet( IList<object> metadata, ApiVersion apiVersion )
447+
{
448+
for ( var i = metadata.Count - 1; i >= 0; i-- )
449+
{
450+
if ( metadata[i] is ApiVersionSet versionSet )
451+
{
452+
versionSet.AdvertisesApiVersion( apiVersion );
453+
break;
454+
}
455+
}
456+
}
457+
458+
private static void AdvertiseDeprecatedInApiVersionSet( IList<object> metadata, ApiVersion apiVersion )
459+
{
460+
for ( var i = metadata.Count - 1; i >= 0; i-- )
461+
{
462+
if ( metadata[i] is ApiVersionSet versionSet )
463+
{
464+
versionSet.AdvertisesDeprecatedApiVersion( apiVersion );
465+
break;
466+
}
467+
}
468+
}
469+
470470
private sealed class SingleItemReadOnlyList : IReadOnlyList<ApiVersion>
471471
{
472472
private readonly ApiVersion item;

‎src/AspNetCore/WebApi/src/Asp.Versioning.Http/Builder/VersionedEndpointRouteBuilder.cs

+24-14
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ public VersionedEndpointRouteBuilder(
4646
protected ApiVersionSetBuilder VersionSetBuilder { get; }
4747

4848
/// <inheritdoc />
49-
public virtual IApplicationBuilder CreateApplicationBuilder() => routeBuilder.CreateApplicationBuilder();
49+
public virtual IApplicationBuilder CreateApplicationBuilder() =>
50+
routeBuilder.CreateApplicationBuilder();
5051

5152
/// <inheritdoc />
5253
public virtual IServiceProvider ServiceProvider => serviceProvider;
@@ -55,30 +56,33 @@ public VersionedEndpointRouteBuilder(
5556
public virtual ICollection<EndpointDataSource> DataSources => dataSources;
5657

5758
/// <inheritdoc />
58-
public virtual void Add( Action<EndpointBuilder> convention ) => conventionBuilder.Add( convention );
59+
public virtual void Add( Action<EndpointBuilder> convention ) =>
60+
conventionBuilder.Add( convention );
5961

6062
private sealed class ServiceProviderDecorator : IServiceProvider
6163
{
6264
private readonly IServiceProvider decorated;
6365
private readonly ApiVersionSetBuilder versionSetBuilder;
6466
private ApiVersionSet? versionSet;
6567

66-
internal ServiceProviderDecorator( IServiceProvider decorated, ApiVersionSetBuilder versionSetBuilder )
68+
internal ServiceProviderDecorator(
69+
IServiceProvider decorated,
70+
ApiVersionSetBuilder versionSetBuilder )
6771
{
6872
this.decorated = decorated;
6973
this.versionSetBuilder = versionSetBuilder;
7074
}
7175

7276
public object? GetService( Type serviceType )
7377
{
74-
if ( typeof( ApiVersionSet ).Equals( serviceType ) )
78+
if ( typeof( ApiVersionSetBuilder ).Equals( serviceType ) )
7579
{
76-
return versionSet ??= versionSetBuilder.Build();
80+
return versionSetBuilder;
7781
}
7882

79-
if ( typeof( ApiVersionSetBuilder ).Equals( serviceType ) )
83+
if ( typeof( ApiVersionSet ).Equals( serviceType ) )
8084
{
81-
return versionSetBuilder;
85+
return versionSet ??= versionSetBuilder.Build();
8286
}
8387

8488
return decorated.GetService( serviceType );
@@ -90,7 +94,9 @@ private sealed class EndpointDataSourceDecorator : EndpointDataSource
9094
private readonly EndpointDataSource decorated;
9195
private readonly ApiVersionSetBuilder versionSetBuilder;
9296

93-
internal EndpointDataSourceDecorator( EndpointDataSource decorated, ApiVersionSetBuilder versionSetBuilder )
97+
internal EndpointDataSourceDecorator(
98+
EndpointDataSource decorated,
99+
ApiVersionSetBuilder versionSetBuilder )
94100
{
95101
this.decorated = decorated;
96102
this.versionSetBuilder = versionSetBuilder;
@@ -104,14 +110,16 @@ public override IReadOnlyList<Endpoint> GetGroupedEndpoints( RouteGroupContext c
104110
{
105111
CollateGroupApiVersions();
106112

107-
// HACK: we don't have a way to pass the version set for the group down to each convention so
108-
// decorate the service provider to allow it to be resolved. this requires rebuilding the
109-
// current context as well.
113+
// HACK: we don't have a way to pass the version set for the group down
114+
// to each convention so decorate the service provider to allow it to
115+
// be resolved. this requires rebuilding the current context as well.
110116
if ( context.ApplicationServices is not ServiceProviderDecorator )
111117
{
112118
context = new()
113119
{
114-
ApplicationServices = new ServiceProviderDecorator( context.ApplicationServices, versionSetBuilder ),
120+
ApplicationServices = new ServiceProviderDecorator(
121+
context.ApplicationServices,
122+
versionSetBuilder ),
115123
Conventions = context.Conventions,
116124
FinallyConventions = context.FinallyConventions,
117125
Prefix = context.Prefix,
@@ -121,7 +129,8 @@ public override IReadOnlyList<Endpoint> GetGroupedEndpoints( RouteGroupContext c
121129
return decorated.GetGroupedEndpoints( context );
122130
}
123131

124-
public override bool Equals( object? obj ) => ReferenceEquals( this, obj ) || ReferenceEquals( decorated, obj );
132+
public override bool Equals( object? obj ) =>
133+
ReferenceEquals( this, obj ) || ReferenceEquals( decorated, obj );
125134

126135
public override int GetHashCode() => decorated.GetHashCode();
127136

@@ -190,7 +199,8 @@ public void Add( EndpointDataSource item ) =>
190199

191200
public bool Contains( EndpointDataSource item ) => adapted.Contains( item );
192201

193-
public void CopyTo( EndpointDataSource[] array, int arrayIndex ) => adapted.CopyTo( array, arrayIndex );
202+
public void CopyTo( EndpointDataSource[] array, int arrayIndex ) =>
203+
adapted.CopyTo( array, arrayIndex );
194204

195205
public IEnumerator<EndpointDataSource> GetEnumerator() => adapted.GetEnumerator();
196206

0 commit comments

Comments
 (0)
Please sign in to comment.