From 4d706f045f81782a62c29117893d3c7f03e8a6a4 Mon Sep 17 00:00:00 2001 From: Kiran Challa Date: Fri, 3 Aug 2018 12:45:31 -0700 Subject: [PATCH] rebase changes --- .../DefaultLinkGenerator.cs | 3 +- .../DefaultLinkGeneratorTest.cs | 29 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Microsoft.AspNetCore.Routing/DefaultLinkGenerator.cs b/src/Microsoft.AspNetCore.Routing/DefaultLinkGenerator.cs index d56e7092ea..f8e82f074f 100644 --- a/src/Microsoft.AspNetCore.Routing/DefaultLinkGenerator.cs +++ b/src/Microsoft.AspNetCore.Routing/DefaultLinkGenerator.cs @@ -108,10 +108,11 @@ namespace Microsoft.AspNetCore.Routing new RouteTemplate(endpoint.RoutePattern), new RouteValueDictionary(endpoint.RoutePattern.Defaults)); + var routeValuesAddressMetadata = endpoint.Metadata.GetMetadata(); var templateValuesResult = templateBinder.GetValues( ambientValues: ambientValues, explicitValues: explicitValues, - requiredKeys: endpoint.RequiredValues.Keys); + requiredKeys: routeValuesAddressMetadata?.RequiredValues.Keys); if (templateValuesResult == null) { // We're missing one of the required values for this route. diff --git a/test/Microsoft.AspNetCore.Routing.Tests/DefaultLinkGeneratorTest.cs b/test/Microsoft.AspNetCore.Routing.Tests/DefaultLinkGeneratorTest.cs index c226e3edd6..84e9701cd8 100644 --- a/test/Microsoft.AspNetCore.Routing.Tests/DefaultLinkGeneratorTest.cs +++ b/test/Microsoft.AspNetCore.Routing.Tests/DefaultLinkGeneratorTest.cs @@ -1311,9 +1311,10 @@ namespace Microsoft.AspNetCore.Routing // Arrange var endpoint1 = EndpointFactory.CreateMatcherEndpoint( "Product/Edit/{id}", - requiredValues: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, defaults: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, - metadata: new RouteNameMetadata("EditProduct")); + metadata: new RouteValuesAddressMetadata( + "EditProduct", + new RouteValueDictionary(new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }))); var linkGenerator = CreateLinkGenerator(endpoint1); // Act @@ -1334,14 +1335,16 @@ namespace Microsoft.AspNetCore.Routing // Arrange var endpoint1 = EndpointFactory.CreateMatcherEndpoint( "Product/Edit/{id}", - requiredValues: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, defaults: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, - metadata: new RouteNameMetadata("default")); + metadata: new RouteValuesAddressMetadata( + "default", + new RouteValueDictionary(new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }))); var endpoint2 = EndpointFactory.CreateMatcherEndpoint( "Product/Details/{id}", - requiredValues: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, defaults: new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }, - metadata: new RouteNameMetadata("default")); + metadata: new RouteValuesAddressMetadata( + "default", + new RouteValueDictionary(new { controller = "Product", action = "Edit", area = (string)null, page = (string)null }))); var linkGenerator = CreateLinkGenerator(endpoint1, endpoint2); // Act @@ -1528,6 +1531,11 @@ namespace Microsoft.AspNetCore.Routing } } + private interface INameMetadata + { + string Name { get; } + } + private class NameMetadata : INameMetadata { public NameMetadata(string name) @@ -1536,14 +1544,5 @@ namespace Microsoft.AspNetCore.Routing } public string Name { get; } } - - private class RouteNameMetadata : IRouteNameMetadata - { - public RouteNameMetadata(string name) - { - Name = name; - } - public string Name { get; } - } } }