Reaction PR from routing rename
This commit is contained in:
parent
9c424b7b02
commit
5c4c746797
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue