Skip to content

Commit 037e033

Browse files
authored
Merge pull request #300 from btecu/updates
Upgrade to AspNetCore/EfCore 2.1 and use `Mvc.Core` instead of `Mvc`
2 parents 3f4e76f + b276a0a commit 037e033

40 files changed

+118
-142
lines changed

Diff for: .travis.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
language: csharp
22
dist: trusty
33
sudo: required
4-
services:
4+
services:
55
- postgresql
66
before_script:
77
- psql -c 'create database JsonApiDotNetCoreExample;' -U postgres
88
mono: none
9-
dotnet: 2.1.105 # https://www.microsoft.com/net/download/linux
9+
dotnet: 2.1.300 # https://www.microsoft.com/net/download/linux
1010
branches:
1111
only:
1212
- master

Diff for: Directory.Build.props

+13-14
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,27 @@
44
<NetCoreAppVersion>netcoreapp2.0</NetCoreAppVersion>
55
<NetStandardVersion>netstandard2.0</NetStandardVersion>
66

7-
<AspNetCoreVersion>2.0.1</AspNetCoreVersion>
7+
<AspNetCoreVersion>2.1.0</AspNetCoreVersion>
88

9-
<MicrosoftLoggingVersion>2.0.0</MicrosoftLoggingVersion>
10-
<MicrosoftConfigurationVersion>2.0.0</MicrosoftConfigurationVersion>
11-
<MicrosoftOptionsVersion>2.0.0</MicrosoftOptionsVersion>
9+
<MicrosoftLoggingVersion>2.1.0</MicrosoftLoggingVersion>
10+
<MicrosoftConfigurationVersion>2.1.0</MicrosoftConfigurationVersion>
11+
<MicrosoftOptionsVersion>2.1.0</MicrosoftOptionsVersion>
1212

13-
<EFCoreVersion>2.0.1</EFCoreVersion>
14-
<EFCoreToolsVersion>2.0.1</EFCoreToolsVersion>
13+
<EFCoreVersion>2.1.0</EFCoreVersion>
14+
<EFCoreToolsVersion>2.1.0</EFCoreToolsVersion>
1515

16-
<NpgsqlVersion>3.2.6</NpgsqlVersion>
17-
<NpgsqlPostgreSQLVersion>2.0.0</NpgsqlPostgreSQLVersion>
16+
<NpgsqlVersion>4.0.0</NpgsqlVersion>
17+
<NpgsqlPostgreSQLVersion>2.1.0</NpgsqlPostgreSQLVersion>
1818

19-
<TuplesVersion>4.4.0</TuplesVersion>
19+
<TuplesVersion>4.5.0</TuplesVersion>
2020
</PropertyGroup>
2121

2222
<!-- Test Project Dependencies -->
2323
<PropertyGroup>
24-
<TestSdkVersion>15.3.0-preview-20170427-09</TestSdkVersion>
25-
<TestHostVersion>1.1.2</TestHostVersion>
26-
<XUnitVersion>2.3.0-beta3-build3705</XUnitVersion>
27-
<BogusVersion>15.0.3</BogusVersion>
28-
<MoqVersion>4.7.99</MoqVersion>
24+
<TestSdkVersion>15.7.2</TestSdkVersion>
25+
<XUnitVersion>2.3.1</XUnitVersion>
26+
<BogusVersion>22.1.2</BogusVersion>
27+
<MoqVersion>4.8.3</MoqVersion>
2928
</PropertyGroup>
3029

3130
</Project>

Diff for: benchmarks/Benchmarks.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>Benchmarks</AssemblyName>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="BenchmarkDotNet" Version="0.10.10" />
8+
<PackageReference Include="BenchmarkDotNet" Version="0.10.14" />
99
<PackageReference Include="moq" Version="$(MoqVersion)" />
1010
<PackageReference Include="xunit" Version="$(xUnitVersion)" />
1111
</ItemGroup>

Diff for: src/Examples/JsonApiDotNetCoreExample/Controllers/Restricted/ReadOnlyController.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace JsonApiDotNetCoreExample.Controllers.Restricted
55
{
66
[Route("[controller]")]
77
[HttpReadOnly]
8-
public class ReadOnlyController : Controller
8+
public class ReadOnlyController : ControllerBase
99
{
1010
[HttpGet]
1111
public IActionResult Get() => Ok();
@@ -22,7 +22,7 @@ public class ReadOnlyController : Controller
2222

2323
[Route("[controller]")]
2424
[NoHttpPost]
25-
public class NoHttpPostController : Controller
25+
public class NoHttpPostController : ControllerBase
2626
{
2727
[HttpGet]
2828
public IActionResult Get() => Ok();
@@ -39,7 +39,7 @@ public class NoHttpPostController : Controller
3939

4040
[Route("[controller]")]
4141
[NoHttpPatch]
42-
public class NoHttpPatchController : Controller
42+
public class NoHttpPatchController : ControllerBase
4343
{
4444
[HttpGet]
4545
public IActionResult Get() => Ok();
@@ -56,7 +56,7 @@ public class NoHttpPatchController : Controller
5656

5757
[Route("[controller]")]
5858
[NoHttpDelete]
59-
public class NoHttpDeleteController : Controller
59+
public class NoHttpDeleteController : ControllerBase
6060
{
6161
[HttpGet]
6262
public IActionResult Get() => Ok();

Diff for: src/Examples/JsonApiDotNetCoreExample/Controllers/TestValuesController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace JsonApiDotNetCoreExample.Controllers
44
{
55
[Route("[controller]")]
6-
public class TestValuesController : Controller
6+
public class TestValuesController : ControllerBase
77
{
88
[HttpGet]
99
public IActionResult Get()

Diff for: src/Examples/JsonApiDotNetCoreExample/Controllers/TodoItemsCustomController.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,12 @@ public CustomJsonApiController(
3333
}
3434

3535
public class CustomJsonApiController<T, TId>
36-
: Controller where T : class, IIdentifiable<TId>
36+
: ControllerBase where T : class, IIdentifiable<TId>
3737
{
3838
private readonly ILogger _logger;
3939
private readonly IResourceService<T, TId> _resourceService;
4040
private readonly IJsonApiContext _jsonApiContext;
4141

42-
protected IActionResult UnprocessableEntity()
43-
{
44-
return new StatusCodeResult(422);
45-
}
46-
4742
protected IActionResult Forbidden()
4843
{
4944
return new StatusCodeResult(403);

Diff for: src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@
2525
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(EFCoreToolsVersion)" />
2626
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(NpgsqlPostgreSQLVersion)" />
2727
</ItemGroup>
28+
2829
</Project>

Diff for: src/Examples/JsonApiDotNetCoreExample/Migrations/20180327120810_initial.Designer.cs

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: src/Examples/JsonApiDotNetCoreExample/Migrations/20180327120810_initial.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
using Microsoft.EntityFrameworkCore.Metadata;
1+
using Microsoft.EntityFrameworkCore.Metadata;
22
using Microsoft.EntityFrameworkCore.Migrations;
33
using System;
44
using System.Collections.Generic;
5+
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
56

67
namespace JsonApiDotNetCoreExample.Migrations
78
{

Diff for: src/Examples/JsonApiDotNetCoreExample/Migrations/AppDbContextModelSnapshot.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// <auto-generated />
1+
// <auto-generated />
22
using JsonApiDotNetCoreExample.Data;
33
using Microsoft.EntityFrameworkCore;
44
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -7,6 +7,7 @@
77
using Microsoft.EntityFrameworkCore.Storage;
88
using Microsoft.EntityFrameworkCore.Storage.Internal;
99
using System;
10+
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
1011

1112
namespace JsonApiDotNetCoreExample.Migrations
1213
{

Diff for: src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftLoggingVersion)" />
1919
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(NpgsqlPostgreSQLVersion)" />
2020
<PackageReference Include="Npgsql" Version="$(NpgsqlVersion)" />
21-
<PackageReference Include="Dapper" Version="1.50.2" />
21+
<PackageReference Include="Dapper" Version="1.50.5" />
2222
</ItemGroup>
2323

2424
</Project>

Diff for: src/Examples/NoEntityFrameworkExample/Startup.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public Startup(IHostingEnvironment env)
3131
public virtual IServiceProvider ConfigureServices(IServiceCollection services)
3232
{
3333
// Add framework services.
34-
var mvcBuilder = services.AddMvc();
34+
var mvcBuilder = services.AddMvcCore();
3535

3636
services.AddJsonApi(options => {
3737
options.Namespace = "api/v1";

Diff for: src/Examples/OperationsExample/OperationsExample.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@
2626
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="$(EFCoreToolsVersion)" />
2727
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(NpgsqlPostgreSQLVersion)" />
2828
</ItemGroup>
29+
2930
</Project>

Diff for: src/Examples/ReportsExample/ReportsExample.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313

1414
<ItemGroup>
1515
<PackageReference Include="Microsoft.AspNetCore" Version="$(AspNetCoreVersion)" />
16-
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(AspNetCoreVersion)" />
16+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="$(AspNetCoreVersion)" />
1717
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftLoggingVersion)" />
1818
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(NpgsqlPostgreSQLVersion)" />
1919
<PackageReference Include="Npgsql" Version="$(NpgsqlVersion)" />
20-
<PackageReference Include="Dapper" Version="1.50.2" />
20+
<PackageReference Include="Dapper" Version="1.50.5" />
2121
</ItemGroup>
2222

2323
</Project>

Diff for: src/Examples/ReportsExample/Startup.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public Startup(IHostingEnvironment env)
2525

2626
public virtual void ConfigureServices(IServiceCollection services)
2727
{
28-
var mvcBuilder = services.AddMvc();
28+
var mvcBuilder = services.AddMvcCore();
2929
services.AddJsonApi(opt =>
3030
{
3131
opt.BuildContextGraph(builder =>

Diff for: src/JsonApiDotNetCore/Controllers/JsonApiControllerMixin.cs

+9-13
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,8 @@
55

66
namespace JsonApiDotNetCore.Controllers
77
{
8-
public abstract class JsonApiControllerMixin : Controller
8+
public abstract class JsonApiControllerMixin : ControllerBase
99
{
10-
protected IActionResult UnprocessableEntity()
11-
{
12-
return new StatusCodeResult(422);
13-
}
14-
1510
protected IActionResult Forbidden()
1611
{
1712
return new StatusCodeResult(403);
@@ -23,18 +18,19 @@ protected IActionResult Error(Error error)
2318
{
2419
Errors = new List<Error> { error }
2520
};
26-
var result = new ObjectResult(errorCollection);
27-
result.StatusCode = error.StatusCode;
2821

29-
return result;
22+
return new ObjectResult(errorCollection)
23+
{
24+
StatusCode = error.StatusCode
25+
};
3026
}
3127

3228
protected IActionResult Errors(ErrorCollection errors)
3329
{
34-
var result = new ObjectResult(errors);
35-
result.StatusCode = GetErrorStatusCode(errors);
36-
37-
return result;
30+
return new ObjectResult(errors)
31+
{
32+
StatusCode = GetErrorStatusCode(errors)
33+
};
3834
}
3935

4036
private int GetErrorStatusCode(ErrorCollection errors)

Diff for: src/JsonApiDotNetCore/Controllers/JsonApiOperationsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace JsonApiDotNetCore.Controllers
88
/// <summary>
99
/// A controller to be used for bulk operations as defined in the json:api 1.1 specification
1010
/// </summary>
11-
public class JsonApiOperationsController : Controller
11+
public class JsonApiOperationsController : ControllerBase
1212
{
1313
private readonly IOperationsProcessor _operationsProcessor;
1414

Diff for: src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ public static class IServiceCollectionExtensions
2323
public static IServiceCollection AddJsonApi<TContext>(this IServiceCollection services)
2424
where TContext : DbContext
2525
{
26-
var mvcBuilder = services.AddMvc();
27-
return AddJsonApi<TContext>(services, (opt) => { }, mvcBuilder);
26+
var mvcBuilder = services.AddMvcCore();
27+
return AddJsonApi<TContext>(services, opt => { }, mvcBuilder);
2828
}
2929

3030
public static IServiceCollection AddJsonApi<TContext>(this IServiceCollection services, Action<JsonApiOptions> options)
3131
where TContext : DbContext
3232
{
33-
var mvcBuilder = services.AddMvc();
33+
var mvcBuilder = services.AddMvcCore();
3434
return AddJsonApi<TContext>(services, options, mvcBuilder);
3535
}
3636

3737
public static IServiceCollection AddJsonApi<TContext>(this IServiceCollection services,
3838
Action<JsonApiOptions> options,
39-
IMvcBuilder mvcBuilder) where TContext : DbContext
39+
IMvcCoreBuilder mvcBuilder) where TContext : DbContext
4040
{
4141
var config = new JsonApiOptions();
4242

@@ -57,7 +57,7 @@ public static IServiceCollection AddJsonApi<TContext>(this IServiceCollection se
5757

5858
public static IServiceCollection AddJsonApi(this IServiceCollection services,
5959
Action<JsonApiOptions> options,
60-
IMvcBuilder mvcBuilder)
60+
IMvcCoreBuilder mvcBuilder)
6161
{
6262
var config = new JsonApiOptions();
6363

Diff for: src/JsonApiDotNetCore/JsonApiDotNetCore.csproj

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<VersionPrefix>2.2.5</VersionPrefix>
3+
<VersionPrefix>2.3.0</VersionPrefix>
44
<TargetFrameworks>$(NetStandardVersion)</TargetFrameworks>
55
<AssemblyName>JsonApiDotNetCore</AssemblyName>
66
<PackageId>JsonApiDotNetCore</PackageId>
@@ -17,12 +17,13 @@
1717
</PropertyGroup>
1818

1919
<ItemGroup>
20-
<PackageReference Include="Ben.Demystifier" Version="0.1.0" />
20+
<PackageReference Include="Ben.Demystifier" Version="0.1.1" />
2121
<PackageReference Include="Microsoft.AspNetCore.Routing" Version="$(AspNetCoreVersion)" />
22-
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="$(AspNetCoreVersion)" />
22+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="$(AspNetCoreVersion)" />
2323
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="$(EFCoreVersion)" />
2424
<PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftLoggingVersion)" />
25-
<PackageReference Include="System.Memory" Version="4.5.0-preview2-26406-04" />
25+
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
26+
<PackageReference Include="System.Memory" Version="4.5.0" />
2627
<PackageReference Include="System.ValueTuple" Version="$(TuplesVersion)" />
2728
</ItemGroup>
2829

Diff for: test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/CustomErrorTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class CustomErrorTests
1111
public void Can_Return_Custom_Error_Types()
1212
{
1313
// arrange
14-
var error = new CustomError("507", "title", "detail", "custom");
14+
var error = new CustomError(507, "title", "detail", "custom");
1515
var errorCollection = new ErrorCollection();
1616
errorCollection.Add(error);
1717

@@ -36,7 +36,7 @@ public void Can_Return_Custom_Error_Types()
3636
}
3737

3838
class CustomError : Error {
39-
public CustomError(string status, string title, string detail, string myProp)
39+
public CustomError(int status, string title, string detail, string myProp)
4040
: base(status, title, detail)
4141
{
4242
MyCustomProperty = myProp;

Diff for: test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/AttributeFilterTests.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public async Task Can_Filter_On_Not_Equal_Values()
131131

132132
// assert
133133
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
134-
Assert.False(deserializedTodoItems.Any(i => i.Ordinal == todoItem.Ordinal));
134+
Assert.DoesNotContain(deserializedTodoItems, x => x.Ordinal == todoItem.Ordinal);
135135
}
136136

137137
[Fact]
@@ -170,8 +170,8 @@ public async Task Can_Filter_On_In_Array_Values()
170170
Assert.Equal(guids.Count(), deserializedTodoItems.Count());
171171
foreach (var item in deserializedTodoItems)
172172
{
173-
Assert.True(guids.Contains(item.GuidProperty));
174-
Assert.False(notInGuids.Contains(item.GuidProperty));
173+
Assert.Contains(item.GuidProperty, guids);
174+
Assert.DoesNotContain(item.GuidProperty, notInGuids);
175175
}
176176
}
177177

@@ -207,7 +207,7 @@ public async Task Can_Filter_On_Related_In_Array_Values()
207207
Assert.NotNull(included);
208208
Assert.NotEmpty(included);
209209
foreach (var item in included)
210-
Assert.True(ownerFirstNames.Contains(item.Attributes["first-name"]));
210+
Assert.Contains(item.Attributes["first-name"], ownerFirstNames);
211211

212212
}
213213
}

0 commit comments

Comments
 (0)