Skip to content

Commit c43500f

Browse files
Chris Martinezcommonsensesoftware
Chris Martinez
authored andcommitted
Simplify tuple usage
1 parent 0a77175 commit c43500f

File tree

4 files changed

+33
-49
lines changed

4 files changed

+33
-49
lines changed

src/Microsoft.AspNetCore.Mvc.Versioning/Versioning/Conventions/ActionApiVersionConventionBuilderBase.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
#pragma warning disable SA1200 // Using directives should be placed correctly; false positive - required for inner, short-hand type aliasing
2-
using System;
3-
using System.Collections.Generic;
4-
#pragma warning restore SA1200
5-
6-
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
1+
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
72
{
83
using Microsoft.AspNetCore.Mvc.ApplicationModels;
94
using System;
5+
using System.Collections.Generic;
106
using System.Linq;
11-
using ControllerVersionInfo = System.Tuple<System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>>;
127

138
/// <content>
149
/// Provides additional implementation specific to Microsoft ASP.NET Core.
@@ -29,13 +24,18 @@ public virtual void ApplyTo( ActionModel actionModel )
2924
from version in provider.Versions
3025
select version );
3126

32-
var controllerVersionInfo = actionModel.GetProperty<ControllerVersionInfo>();
27+
var (supportedVersions, deprecatedVersions, advertisedVersions, deprecatedAdvertisedVersions) =
28+
actionModel.GetProperty<(IEnumerable<ApiVersion>,
29+
IEnumerable<ApiVersion>,
30+
IEnumerable<ApiVersion>,
31+
IEnumerable<ApiVersion>)>();
32+
3333
var versionModel = new ApiVersionModel(
3434
declaredVersions: MappedVersions,
35-
supportedVersions: controllerVersionInfo.Item1,
36-
deprecatedVersions: controllerVersionInfo.Item2,
37-
advertisedVersions: controllerVersionInfo.Item3,
38-
deprecatedAdvertisedVersions: controllerVersionInfo.Item4 );
35+
supportedVersions,
36+
deprecatedVersions,
37+
advertisedVersions,
38+
deprecatedAdvertisedVersions );
3939

4040
actionModel.SetProperty( versionModel );
4141
}

src/Microsoft.AspNetCore.Mvc.Versioning/Versioning/Conventions/ControllerApiVersionConventionBuilderBase.cs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
#pragma warning disable SA1200 // Using directives should be placed correctly; false positive - required for inner, short-hand type aliasing
2-
using System;
3-
using System.Collections.Generic;
4-
#pragma warning restore SA1200
5-
6-
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
1+
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
72
{
83
using Microsoft.AspNetCore.Mvc.ApplicationModels;
94
using System;
5+
using System.Collections.Generic;
106
using System.Diagnostics.Contracts;
117
using System.Linq;
128
using System.Reflection;
13-
using ControllerVersionInfo = System.Tuple<System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Mvc.ApiVersion>>;
149

1510
/// <content>
1611
/// Provides additional implementation specific to Microsoft ASP.NET Core.
@@ -47,10 +42,9 @@ static void ApplyNeutralModelToActions( ControllerModel controller )
4742
}
4843
}
4944

50-
ControllerVersionInfo ApplyControllerConventions( ControllerModel controllerModel )
45+
(IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>) ApplyControllerConventions( ControllerModel controllerModel )
5146
{
5247
Contract.Requires( controllerModel != null );
53-
Contract.Ensures( Contract.Result<ControllerVersionInfo>() != null );
5448

5549
MergeControllerAttributesWithConventions( controllerModel );
5650

@@ -63,7 +57,7 @@ ControllerVersionInfo ApplyControllerConventions( ControllerModel controllerMode
6357
controllerModel.SetProperty( new ApiVersionModel( VersionNeutral, supportedVersions, deprecatedVersions, advertisedVersions, deprecatedAdvertisedVersions ) );
6458
}
6559

66-
return new ControllerVersionInfo( supportedVersions, deprecatedVersions, advertisedVersions, deprecatedAdvertisedVersions );
60+
return (supportedVersions, deprecatedVersions, advertisedVersions, deprecatedAdvertisedVersions);
6761
}
6862

6963
void MergeControllerAttributesWithConventions( ControllerModel controllerModel )
@@ -103,10 +97,9 @@ from version in provider.Versions
10397
select version );
10498
}
10599

106-
void ApplyActionConventions( ControllerModel controller, ControllerVersionInfo controllerVersionInfo )
100+
void ApplyActionConventions( ControllerModel controller, (IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>) controllerVersionInfo )
107101
{
108102
Contract.Requires( controller != null );
109-
Contract.Requires( controllerVersionInfo != null );
110103

111104
if ( VersionNeutral )
112105
{
@@ -118,10 +111,9 @@ void ApplyActionConventions( ControllerModel controller, ControllerVersionInfo c
118111
}
119112
}
120113

121-
void MergeActionAttributesWithConventions( ControllerModel controller, ControllerVersionInfo controllerVersionInfo )
114+
void MergeActionAttributesWithConventions( ControllerModel controller, (IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>) controllerVersionInfo )
122115
{
123116
Contract.Requires( controller != null );
124-
Contract.Requires( controllerVersionInfo != null );
125117

126118
foreach ( var action in controller.Actions )
127119
{
@@ -133,7 +125,7 @@ void MergeActionAttributesWithConventions( ControllerModel controller, Controlle
133125
{
134126
action.SetProperty( controllerVersionInfo );
135127
actionConvention.ApplyTo( action );
136-
action.SetProperty( default( ControllerVersionInfo ) );
128+
action.RemoveProperty( controllerVersionInfo );
137129
}
138130
else
139131
{

test/Microsoft.AspNetCore.Mvc.Versioning.Tests/Versioning/Conventions/ActionApiVersionConventionBuilderTTest.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
4-
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
1+
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
52
{
63
using ApplicationModels;
74
using FluentAssertions;
@@ -10,7 +7,6 @@ namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
107
using System.Reflection;
118
using Xunit;
129
using static Moq.Times;
13-
using ControllerVersionInfo = Tuple<IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>>;
1410

1511
public class ActionApiVersionConventionBuilderTTest
1612
{
@@ -23,7 +19,7 @@ public void apply_to_should_assign_empty_model_without_api_versions_from_mapped_
2319
var method = typeof( UndecoratedController ).GetMethod( nameof( UndecoratedController.Get ) );
2420
var actionModel = new ActionModel( method, new object[0] );
2521
var empty = Enumerable.Empty<ApiVersion>();
26-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
22+
var controllerVersionInfo = (empty, empty, empty, empty);
2723

2824
actionModel.SetProperty( controllerVersionInfo );
2925

@@ -38,7 +34,7 @@ public void apply_to_should_assign_empty_model_without_api_versions_from_mapped_
3834
DeclaredApiVersions = new ApiVersion[0],
3935
SupportedApiVersions = new ApiVersion[0],
4036
DeprecatedApiVersions = new ApiVersion[0],
41-
ImplementedApiVersions = new ApiVersion[0]
37+
ImplementedApiVersions = new ApiVersion[0],
4238
} );
4339
}
4440

@@ -52,7 +48,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
5248
var attributes = new object[] { new MapToApiVersionAttribute( "2.0" ) };
5349
var actionModel = new ActionModel( method, attributes );
5450
var empty = Enumerable.Empty<ApiVersion>();
55-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
51+
var controllerVersionInfo = (empty, empty, empty, empty);
5652

5753
actionModel.SetProperty( controllerVersionInfo );
5854
actionBuilder.MapToApiVersion( new ApiVersion( 2, 0 ) );
@@ -68,7 +64,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
6864
DeclaredApiVersions = new[] { new ApiVersion( 2, 0 ) },
6965
SupportedApiVersions = new ApiVersion[0],
7066
DeprecatedApiVersions = new ApiVersion[0],
71-
ImplementedApiVersions = new ApiVersion[0]
67+
ImplementedApiVersions = new ApiVersion[0],
7268
} );
7369
}
7470

@@ -82,7 +78,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
8278
var attributes = method.GetCustomAttributes().Cast<object>().ToArray();
8379
var actionModel = new ActionModel( method, attributes );
8480
var empty = Enumerable.Empty<ApiVersion>();
85-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
81+
var controllerVersionInfo = (empty, empty, empty, empty);
8682

8783
actionModel.SetProperty( controllerVersionInfo );
8884
actionBuilder.MapToApiVersion( new ApiVersion( 2, 0 ) )
@@ -99,7 +95,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
9995
DeclaredApiVersions = new[] { new ApiVersion( 2, 0 ), new ApiVersion( 3, 0 ) },
10096
SupportedApiVersions = new ApiVersion[0],
10197
DeprecatedApiVersions = new ApiVersion[0],
102-
ImplementedApiVersions = new ApiVersion[0]
98+
ImplementedApiVersions = new ApiVersion[0],
10399
} );
104100
}
105101

test/Microsoft.AspNetCore.Mvc.Versioning.Tests/Versioning/Conventions/ActionApiVersionConventionBuilderTest.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
4-
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
1+
namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
52
{
63
using ApplicationModels;
74
using FluentAssertions;
@@ -10,7 +7,6 @@ namespace Microsoft.AspNetCore.Mvc.Versioning.Conventions
107
using System.Reflection;
118
using Xunit;
129
using static Moq.Times;
13-
using ControllerVersionInfo = Tuple<IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>, IEnumerable<ApiVersion>>;
1410

1511
public class ActionApiVersionConventionBuilderTest
1612
{
@@ -23,7 +19,7 @@ public void apply_to_should_assign_empty_model_without_api_versions_from_mapped_
2319
var method = typeof( UndecoratedController ).GetMethod( nameof( UndecoratedController.Get ) );
2420
var actionModel = new ActionModel( method, new object[0] );
2521
var empty = Enumerable.Empty<ApiVersion>();
26-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
22+
var controllerVersionInfo = (empty, empty, empty, empty);
2723

2824
actionModel.SetProperty( controllerVersionInfo );
2925

@@ -38,7 +34,7 @@ public void apply_to_should_assign_empty_model_without_api_versions_from_mapped_
3834
DeclaredApiVersions = new ApiVersion[0],
3935
SupportedApiVersions = new ApiVersion[0],
4036
DeprecatedApiVersions = new ApiVersion[0],
41-
ImplementedApiVersions = new ApiVersion[0]
37+
ImplementedApiVersions = new ApiVersion[0],
4238
} );
4339
}
4440

@@ -52,7 +48,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
5248
var attributes = new object[] { new MapToApiVersionAttribute( "2.0" ) };
5349
var actionModel = new ActionModel( method, attributes );
5450
var empty = Enumerable.Empty<ApiVersion>();
55-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
51+
var controllerVersionInfo = (empty, empty, empty, empty);
5652

5753
actionModel.SetProperty( controllerVersionInfo );
5854
actionBuilder.MapToApiVersion( new ApiVersion( 2, 0 ) );
@@ -68,7 +64,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
6864
DeclaredApiVersions = new[] { new ApiVersion( 2, 0 ) },
6965
SupportedApiVersions = new ApiVersion[0],
7066
DeprecatedApiVersions = new ApiVersion[0],
71-
ImplementedApiVersions = new ApiVersion[0]
67+
ImplementedApiVersions = new ApiVersion[0],
7268
} );
7369
}
7470

@@ -82,7 +78,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
8278
var attributes = method.GetCustomAttributes().Cast<object>().ToArray();
8379
var actionModel = new ActionModel( method, attributes );
8480
var empty = Enumerable.Empty<ApiVersion>();
85-
var controllerVersionInfo = new ControllerVersionInfo( empty, empty, empty, empty );
81+
var controllerVersionInfo = (empty, empty, empty, empty);
8682

8783
actionModel.SetProperty( controllerVersionInfo );
8884
actionBuilder.MapToApiVersion( new ApiVersion( 2, 0 ) )
@@ -99,7 +95,7 @@ public void apply_to_should_assign_model_with_declared_api_versions_from_mapped_
9995
DeclaredApiVersions = new[] { new ApiVersion( 2, 0 ), new ApiVersion( 3, 0 ) },
10096
SupportedApiVersions = new ApiVersion[0],
10197
DeprecatedApiVersions = new ApiVersion[0],
102-
ImplementedApiVersions = new ApiVersion[0]
98+
ImplementedApiVersions = new ApiVersion[0],
10399
} );
104100
}
105101

0 commit comments

Comments
 (0)