From 2878aac6892eed07086ec9ea3f35aa72b2f21969 Mon Sep 17 00:00:00 2001 From: jaredcnance Date: Fri, 7 Apr 2017 09:05:34 -0500 Subject: [PATCH 1/2] feat(dasherized-route-conv): check if controller is JsonApiController --- .../Internal/DasherizedRoutingConvention.cs | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/JsonApiDotNetCore/Internal/DasherizedRoutingConvention.cs b/src/JsonApiDotNetCore/Internal/DasherizedRoutingConvention.cs index 7732a91250..97be6aee14 100644 --- a/src/JsonApiDotNetCore/Internal/DasherizedRoutingConvention.cs +++ b/src/JsonApiDotNetCore/Internal/DasherizedRoutingConvention.cs @@ -1,5 +1,6 @@ // REF: https://github.com/aspnet/Entropy/blob/dev/samples/Mvc.CustomRoutingConvention/NameSpaceRoutingConvention.cs // REF: https://github.com/aspnet/Mvc/issues/5691 +using JsonApiDotNetCore.Controllers; using JsonApiDotNetCore.Extensions; using Microsoft.AspNetCore.Mvc.ApplicationModels; @@ -12,17 +13,28 @@ public DasherizedRoutingConvention(string nspace) { _namespace = nspace; } - + public void Apply(ApplicationModel application) { foreach (var controller in application.Controllers) - { - var template = $"{_namespace}/{controller.ControllerName.Dasherize()}"; - controller.Selectors[0].AttributeRouteModel = new AttributeRouteModel() + { + if (IsJsonApiController(controller)) { - Template = template - }; + var template = $"{_namespace}/{controller.ControllerName.Dasherize()}"; + controller.Selectors[0].AttributeRouteModel = new AttributeRouteModel() + { + Template = template + }; + } } } + + private bool IsJsonApiController(ControllerModel controller) + { + var controllerBaseType = controller.ControllerType.BaseType; + if(!controllerBaseType.IsConstructedGenericType) return false; + var genericTypeDefinition = controllerBaseType.GetGenericTypeDefinition(); + return (genericTypeDefinition == typeof(JsonApiController<,>) || genericTypeDefinition == typeof(JsonApiController<>)); + } } } From f9564f52fe0d7935961b7b1b33ceb3b4b62d18d9 Mon Sep 17 00:00:00 2001 From: jaredcnance Date: Fri, 7 Apr 2017 09:05:45 -0500 Subject: [PATCH 2/2] chore(csproj): bump package version --- src/JsonApiDotNetCore/JsonApiDotNetCore.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj index 45684b0223..b2d2bd4a6c 100755 --- a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj +++ b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj @@ -1,6 +1,6 @@  - 1.3.0 + 1.3.1 netcoreapp1.0 JsonApiDotNetCore JsonApiDotNetCore