Reaction PR from routing rename

This commit is contained in:
Ryan Nowak 2018-09-19 21:55:23 -07:00
parent 9c424b7b02
commit 5c4c746797
9 changed files with 29 additions and 29 deletions

View File

@ -48,8 +48,8 @@
<MicrosoftAspNetCoreRazorTagHelpersTestingSourcesPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRazorTagHelpersTestingSourcesPackageVersion> <MicrosoftAspNetCoreRazorTagHelpersTestingSourcesPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRazorTagHelpersTestingSourcesPackageVersion>
<MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion> <MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion>
<MicrosoftAspNetCoreResponseCachingPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingPackageVersion> <MicrosoftAspNetCoreResponseCachingPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingPackageVersion>
<MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRoutingAbstractionsPackageVersion> <MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>2.2.0-a-preview3-outbound-parameter-tranformer-16996</MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>
<MicrosoftAspNetCoreRoutingPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRoutingPackageVersion> <MicrosoftAspNetCoreRoutingPackageVersion>2.2.0-a-preview3-outbound-parameter-tranformer-16996</MicrosoftAspNetCoreRoutingPackageVersion>
<MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerIISIntegrationPackageVersion> <MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
<MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerKestrelPackageVersion> <MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerKestrelPackageVersion>
<MicrosoftAspNetCoreSessionPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreSessionPackageVersion> <MicrosoftAspNetCoreSessionPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreSessionPackageVersion>

View File

@ -225,7 +225,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
return ReplaceTokens(template, values, routeTokenTransformer: null); return ReplaceTokens(template, values, routeTokenTransformer: null);
} }
public static string ReplaceTokens(string template, IDictionary<string, string> values, IParameterTransformer routeTokenTransformer) public static string ReplaceTokens(string template, IDictionary<string, string> values, IOutboundParameterTransformer routeTokenTransformer)
{ {
var builder = new StringBuilder(); var builder = new StringBuilder();
var state = TemplateParserState.Plaintext; var state = TemplateParserState.Plaintext;
@ -379,7 +379,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
if (routeTokenTransformer != null) if (routeTokenTransformer != null)
{ {
value = routeTokenTransformer.Transform(value); value = routeTokenTransformer.TransformOutbound(value);
} }
builder.Append(value); builder.Append(value);

View File

@ -8,17 +8,17 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
{ {
/// <summary> /// <summary>
/// An <see cref="IActionModelConvention"/> that sets attribute routing token replacement /// An <see cref="IActionModelConvention"/> that sets attribute routing token replacement
/// to use the specified <see cref="IParameterTransformer"/> on <see cref="ActionModel"/> selectors. /// to use the specified <see cref="IOutboundParameterTransformer"/> on <see cref="ActionModel"/> selectors.
/// </summary> /// </summary>
public class RouteTokenTransformerConvention : IActionModelConvention public class RouteTokenTransformerConvention : IActionModelConvention
{ {
private readonly IParameterTransformer _parameterTransformer; private readonly IOutboundParameterTransformer _parameterTransformer;
/// <summary> /// <summary>
/// Creates a new instance of <see cref="RouteTokenTransformerConvention"/> with the specified <see cref="IParameterTransformer"/>. /// Creates a new instance of <see cref="RouteTokenTransformerConvention"/> with the specified <see cref="IOutboundParameterTransformer"/>.
/// </summary> /// </summary>
/// <param name="parameterTransformer">The <see cref="IParameterTransformer"/> to use with attribute routing token replacement.</param> /// <param name="parameterTransformer">The <see cref="IOutboundParameterTransformer"/> to use with attribute routing token replacement.</param>
public RouteTokenTransformerConvention(IParameterTransformer parameterTransformer) public RouteTokenTransformerConvention(IOutboundParameterTransformer parameterTransformer)
{ {
if (parameterTransformer == null) if (parameterTransformer == null)
{ {
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
{ {
if (ShouldApply(action)) if (ShouldApply(action))
{ {
action.Properties[typeof(IParameterTransformer)] = _parameterTransformer; action.Properties[typeof(IOutboundParameterTransformer)] = _parameterTransformer;
} }
} }

View File

@ -390,8 +390,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{ {
try try
{ {
actionDescriptor.Properties.TryGetValue(typeof(IParameterTransformer), out var transformer); actionDescriptor.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out var transformer);
var routeTokenTransformer = transformer as IParameterTransformer; var routeTokenTransformer = transformer as IOutboundParameterTransformer;
actionDescriptor.AttributeRouteInfo.Template = AttributeRouteModel.ReplaceTokens( actionDescriptor.AttributeRouteInfo.Template = AttributeRouteModel.ReplaceTokens(
actionDescriptor.AttributeRouteInfo.Template, actionDescriptor.AttributeRouteInfo.Template,

View File

@ -277,9 +277,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// Use the first transformer policy // Use the first transformer policy
for (var k = 0; k < parameterPolicies.Count; k++) for (var k = 0; k < parameterPolicies.Count; k++)
{ {
if (parameterPolicies[k] is IParameterTransformer parameterTransformer) if (parameterPolicies[k] is IOutboundParameterTransformer parameterTransformer)
{ {
parameterRouteValue = parameterTransformer.Transform(parameterRouteValue); parameterRouteValue = parameterTransformer.TransformOutbound(parameterRouteValue);
break; break;
} }
} }

View File

@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
convention.Apply(model); convention.Apply(model);
// Assert // Assert
Assert.True(model.Properties.TryGetValue(typeof(IParameterTransformer), out var routeTokenTransformer)); Assert.True(model.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out var routeTokenTransformer));
Assert.Equal(transformer, routeTokenTransformer); Assert.Equal(transformer, routeTokenTransformer);
} }
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
convention.Apply(model); convention.Apply(model);
// Assert // Assert
Assert.False(model.Properties.TryGetValue(typeof(IParameterTransformer), out _)); Assert.False(model.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out _));
} }
private MethodInfo GetMethodInfo() private MethodInfo GetMethodInfo()
@ -76,17 +76,17 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
return typeof(RouteTokenTransformerConventionTest).GetMethod(nameof(GetMethodInfo), BindingFlags.NonPublic | BindingFlags.Instance); return typeof(RouteTokenTransformerConventionTest).GetMethod(nameof(GetMethodInfo), BindingFlags.NonPublic | BindingFlags.Instance);
} }
private class TestParameterTransformer : IParameterTransformer private class TestParameterTransformer : IOutboundParameterTransformer
{ {
public string Transform(string value) public string TransformOutbound(object value)
{ {
return value; return value?.ToString();
} }
} }
private class CustomRouteTokenTransformerConvention : RouteTokenTransformerConvention private class CustomRouteTokenTransformerConvention : RouteTokenTransformerConvention
{ {
public CustomRouteTokenTransformerConvention(IParameterTransformer parameterTransformer) : base(parameterTransformer) public CustomRouteTokenTransformerConvention(IOutboundParameterTransformer parameterTransformer) : base(parameterTransformer)
{ {
} }

View File

@ -771,11 +771,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
return dataSource; return dataSource;
} }
private class UpperCaseParameterTransform : IParameterTransformer private class UpperCaseParameterTransform : IOutboundParameterTransformer
{ {
public string Transform(string value) public string TransformOutbound(object value)
{ {
return value?.ToUpperInvariant(); return value?.ToString().ToUpperInvariant();
} }
} }

View File

@ -11,9 +11,9 @@ namespace RoutingWebSite
public class ControllerRouteTokenTransformerConvention : IApplicationModelConvention public class ControllerRouteTokenTransformerConvention : IApplicationModelConvention
{ {
private readonly Type _controllerType; private readonly Type _controllerType;
private readonly IParameterTransformer _parameterTransformer; private readonly IOutboundParameterTransformer _parameterTransformer;
public ControllerRouteTokenTransformerConvention(Type controllerType, IParameterTransformer parameterTransformer) public ControllerRouteTokenTransformerConvention(Type controllerType, IOutboundParameterTransformer parameterTransformer)
{ {
if (parameterTransformer == null) if (parameterTransformer == null)
{ {
@ -30,7 +30,7 @@ namespace RoutingWebSite
{ {
foreach (var action in controller.Actions) foreach (var action in controller.Actions)
{ {
action.Properties[typeof(IParameterTransformer)] = _parameterTransformer; action.Properties[typeof(IOutboundParameterTransformer)] = _parameterTransformer;
} }
} }
} }

View File

@ -7,12 +7,12 @@ using Microsoft.AspNetCore.Routing;
namespace RoutingWebSite namespace RoutingWebSite
{ {
public class SlugifyParameterTransformer : IParameterTransformer public class SlugifyParameterTransformer : IOutboundParameterTransformer
{ {
public string Transform(string value) public string TransformOutbound(object value)
{ {
// Slugify value // Slugify value
return Regex.Replace(value, "([a-z])([A-Z])", "$1-$2", RegexOptions.None, TimeSpan.FromMilliseconds(100)).ToLower(); return value == null ? null : Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2", RegexOptions.None, TimeSpan.FromMilliseconds(100)).ToLower();
} }
} }
} }