From 52efd557f522796eb5643937ac00ec39bb9b0492 Mon Sep 17 00:00:00 2001 From: Jan Mattner Date: Thu, 23 Mar 2017 17:57:29 +0100 Subject: [PATCH 1/4] Fix #71 Hard dependency to MVC setup --- .../Extensions/IApplicationBuilderExtensions.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs index 0a83c12895..4a34fb0692 100644 --- a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs +++ b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs @@ -5,11 +5,14 @@ namespace JsonApiDotNetCore.Routing { public static class IApplicationBuilderExtensions { - public static IApplicationBuilder UseJsonApi(this IApplicationBuilder app) + public static IApplicationBuilder UseJsonApi(this IApplicationBuilder app, bool useMvc = true) { app.UseMiddleware(); - app.UseMvc(); + if (useMvc) + { + app.UseMvc(); + } return app; } From 60a130035cd3333d0483e96e2442838b4ea854f7 Mon Sep 17 00:00:00 2001 From: jaredcnance Date: Thu, 23 Mar 2017 18:12:39 -0500 Subject: [PATCH 2/4] 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 a222271081..8872a457b0 100755 --- a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj +++ b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj @@ -1,7 +1,7 @@  - 1.2.0 + 1.2.2 netcoreapp1.0 JsonApiDotNetCore JsonApiDotNetCore From 38d7ba97fb512aae7526af17ee64702fe16ba4a4 Mon Sep 17 00:00:00 2001 From: jaredcnance Date: Thu, 23 Mar 2017 18:13:47 -0500 Subject: [PATCH 3/4] style(app-builder-ext): single line if-statements --- .../Extensions/IApplicationBuilderExtensions.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs index 4a34fb0692..cf0ded5eb5 100644 --- a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs +++ b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs @@ -10,9 +10,7 @@ public static IApplicationBuilder UseJsonApi(this IApplicationBuilder app, bool app.UseMiddleware(); if (useMvc) - { app.UseMvc(); - } return app; } From b0b96628e36599be0f7ceae6ba2290d70772d3e9 Mon Sep 17 00:00:00 2001 From: jaredcnance Date: Fri, 24 Mar 2017 20:59:26 -0500 Subject: [PATCH 4/4] feat(service-ext): overload for IMvcBuilder --- .../IServiceCollectionExtensions.cs | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs b/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs index 1e646c085d..22653f0e8f 100644 --- a/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs +++ b/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs @@ -18,22 +18,38 @@ public static class IServiceCollectionExtensions public static void AddJsonApi(this IServiceCollection services) where TContext : DbContext { - _addInternals(services, new JsonApiOptions()); + var mvcBuilder = services.AddMvc(); + AddInternals(services, new JsonApiOptions(), mvcBuilder); } public static void AddJsonApi(this IServiceCollection services, Action options) where TContext : DbContext { var config = new JsonApiOptions(); + options(config); - _addInternals(services, config); + + var mvcBuilder = services.AddMvc(); + AddInternals(services, config, mvcBuilder); } - private static void _addInternals(IServiceCollection services, JsonApiOptions jsonApiOptions) - where TContext : DbContext + public static void AddJsonApi(this IServiceCollection services, + Action options, + IMvcBuilder mvcBuilder) where TContext : DbContext + { + var config = new JsonApiOptions(); + + options(config); + + AddInternals(services, config, mvcBuilder); + } + + private static void AddInternals(IServiceCollection services, + JsonApiOptions jsonApiOptions, + IMvcBuilder mvcBuilder) where TContext : DbContext { services.AddJsonApiInternals(jsonApiOptions); - services.AddMvc() + mvcBuilder .AddMvcOptions(opt => { opt.Filters.Add(typeof(JsonApiExceptionFilter)); opt.SerializeAsJsonApi(jsonApiOptions);