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>
|
||||
<MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreResponseCachingPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreResponseCachingPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreRoutingPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>2.2.0-a-preview3-outbound-parameter-tranformer-16996</MicrosoftAspNetCoreRoutingAbstractionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRoutingPackageVersion>2.2.0-a-preview3-outbound-parameter-tranformer-16996</MicrosoftAspNetCoreRoutingPackageVersion>
|
||||
<MicrosoftAspNetCoreServerIISIntegrationPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
|
||||
<MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreServerKestrelPackageVersion>
|
||||
<MicrosoftAspNetCoreSessionPackageVersion>2.2.0-preview3-35252</MicrosoftAspNetCoreSessionPackageVersion>
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
|||
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 state = TemplateParserState.Plaintext;
|
||||
|
|
@ -379,7 +379,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
|||
|
||||
if (routeTokenTransformer != null)
|
||||
{
|
||||
value = routeTokenTransformer.Transform(value);
|
||||
value = routeTokenTransformer.TransformOutbound(value);
|
||||
}
|
||||
|
||||
builder.Append(value);
|
||||
|
|
|
|||
|
|
@ -8,17 +8,17 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
|||
{
|
||||
/// <summary>
|
||||
/// 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>
|
||||
public class RouteTokenTransformerConvention : IActionModelConvention
|
||||
{
|
||||
private readonly IParameterTransformer _parameterTransformer;
|
||||
private readonly IOutboundParameterTransformer _parameterTransformer;
|
||||
|
||||
/// <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>
|
||||
/// <param name="parameterTransformer">The <see cref="IParameterTransformer"/> to use with attribute routing token replacement.</param>
|
||||
public RouteTokenTransformerConvention(IParameterTransformer parameterTransformer)
|
||||
/// <param name="parameterTransformer">The <see cref="IOutboundParameterTransformer"/> to use with attribute routing token replacement.</param>
|
||||
public RouteTokenTransformerConvention(IOutboundParameterTransformer parameterTransformer)
|
||||
{
|
||||
if (parameterTransformer == null)
|
||||
{
|
||||
|
|
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
|||
{
|
||||
if (ShouldApply(action))
|
||||
{
|
||||
action.Properties[typeof(IParameterTransformer)] = _parameterTransformer;
|
||||
action.Properties[typeof(IOutboundParameterTransformer)] = _parameterTransformer;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -390,8 +390,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
|||
{
|
||||
try
|
||||
{
|
||||
actionDescriptor.Properties.TryGetValue(typeof(IParameterTransformer), out var transformer);
|
||||
var routeTokenTransformer = transformer as IParameterTransformer;
|
||||
actionDescriptor.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out var transformer);
|
||||
var routeTokenTransformer = transformer as IOutboundParameterTransformer;
|
||||
|
||||
actionDescriptor.AttributeRouteInfo.Template = AttributeRouteModel.ReplaceTokens(
|
||||
actionDescriptor.AttributeRouteInfo.Template,
|
||||
|
|
|
|||
|
|
@ -277,9 +277,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
|||
// Use the first transformer policy
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
|
|||
convention.Apply(model);
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
|
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
|
|||
convention.Apply(model);
|
||||
|
||||
// Assert
|
||||
Assert.False(model.Properties.TryGetValue(typeof(IParameterTransformer), out _));
|
||||
Assert.False(model.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out _));
|
||||
}
|
||||
|
||||
private MethodInfo GetMethodInfo()
|
||||
|
|
@ -76,17 +76,17 @@ namespace Microsoft.AspNetCore.Mvc.Test.ApplicationModels
|
|||
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
|
||||
{
|
||||
public CustomRouteTokenTransformerConvention(IParameterTransformer parameterTransformer) : base(parameterTransformer)
|
||||
public CustomRouteTokenTransformerConvention(IOutboundParameterTransformer parameterTransformer) : base(parameterTransformer)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -771,11 +771,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
|||
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
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
|
@ -30,7 +30,7 @@ namespace RoutingWebSite
|
|||
{
|
||||
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
|
||||
{
|
||||
public class SlugifyParameterTransformer : IParameterTransformer
|
||||
public class SlugifyParameterTransformer : IOutboundParameterTransformer
|
||||
{
|
||||
public string Transform(string value)
|
||||
public string TransformOutbound(object 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