Skip to content

Commit 6c5bb94

Browse files
committed
fix(*): update references to the Deserializer
inject the db-context
1 parent 2e013ac commit 6c5bb94

File tree

4 files changed

+25
-15
lines changed

4 files changed

+25
-15
lines changed

src/JsonApiDotNetCore/Formatters/JsonApiInputFormatter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Microsoft.Extensions.DependencyInjection;
88
using Microsoft.Extensions.Logging;
99
using Newtonsoft.Json;
10+
using Microsoft.EntityFrameworkCore;
1011

1112
namespace JsonApiDotNetCore.Formatters
1213
{
@@ -37,13 +38,15 @@ public Task<InputFormatterResult> ReadAsync(InputFormatterContext context)
3738
var loggerFactory = GetService<ILoggerFactory>(context);
3839
var logger = loggerFactory?.CreateLogger<JsonApiInputFormatter>();
3940

41+
var dbContext = GetService<DbContext>(context);
42+
4043
try
4144
{
4245
var body = GetRequestBody(context.HttpContext.Request.Body);
4346
var jsonApiContext = GetService<IJsonApiContext>(context);
4447
var model = jsonApiContext.IsRelationshipPath ?
4548
JsonApiDeSerializer.DeserializeRelationship(body, jsonApiContext) :
46-
JsonApiDeSerializer.Deserialize(body, jsonApiContext);
49+
JsonApiDeSerializer.Deserialize(body, jsonApiContext, dbContext);
4750

4851
if(model == null)
4952
logger?.LogError("An error occurred while de-serializing the payload");

test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RepositoryOverrideTests.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,21 @@
1010
using JsonApiDotNetCoreExampleTests.Services;
1111
using JsonApiDotNetCore.Serialization;
1212
using JsonApiDotNetCore.Services;
13+
using DotNetCoreDocs;
14+
using JsonApiDotNetCoreExample;
15+
using DotNetCoreDocs.Writers;
1316

1417
namespace JsonApiDotNetCoreExampleTests.Acceptance.Extensibility
1518
{
1619
[Collection("WebHostCollection")]
1720
public class RepositoryOverrideTests
1821
{
19-
public RepositoryOverrideTests()
20-
{ }
22+
private DocsFixture<Startup, JsonDocWriter> _fixture;
23+
24+
public RepositoryOverrideTests(DocsFixture<Startup, JsonDocWriter> fixture)
25+
{
26+
_fixture = fixture;
27+
}
2128

2229
[Fact]
2330
public async Task Total_Record_Count_Included()
@@ -50,7 +57,7 @@ public async Task Total_Record_Count_Included()
5057
// act
5158
var response = await client.SendAsync(request);
5259
var responseBody = await response.Content.ReadAsStringAsync();
53-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(responseBody, jsonApiContext);
60+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(responseBody, jsonApiContext, _fixture.GetService<AppDbContext>());
5461

5562
// assert
5663
Assert.Equal(HttpStatusCode.OK, response.StatusCode);

test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingDataTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public async Task Request_ForEmptyCollection_Returns_EmptyDataCollection()
5050
// act
5151
var response = await client.SendAsync(request);
5252
var body = await response.Content.ReadAsStringAsync();
53-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
53+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
5454

5555
// assert
5656
Assert.Equal(HttpStatusCode.OK, response.StatusCode);

test/JsonApiDotNetCoreExampleTests/Acceptance/TodoItemsControllerTests.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public async Task Can_Get_TodoItems()
5656
// Act
5757
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
5858
var body = await response.Content.ReadAsStringAsync();
59-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
59+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
6060

6161
// Assert
6262
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -85,7 +85,7 @@ public async Task Can_Paginate_TodoItems()
8585
// Act
8686
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
8787
var body = await response.Content.ReadAsStringAsync();
88-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
88+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
8989

9090
// Assert
9191
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -114,7 +114,7 @@ public async Task Can_Filter_TodoItems()
114114
// Act
115115
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
116116
var body = await response.Content.ReadAsStringAsync();
117-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
117+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
118118

119119
// Assert
120120
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -144,7 +144,7 @@ public async Task Can_Filter_TodoItems_Using_Like_Operator()
144144
// Act
145145
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
146146
var body = await response.Content.ReadAsStringAsync();
147-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
147+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
148148

149149
// Assert
150150
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -182,7 +182,7 @@ public async Task Can_Sort_TodoItems_By_Ordinal_Ascending()
182182
// Act
183183
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
184184
var body = await response.Content.ReadAsStringAsync();
185-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
185+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
186186

187187
// Assert
188188
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -224,7 +224,7 @@ public async Task Can_Sort_TodoItems_By_Ordinal_Descending()
224224
// Act
225225
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
226226
var body = await response.Content.ReadAsStringAsync();
227-
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext);
227+
var deserializedBody = JsonApiDeSerializer.DeserializeList<TodoItem>(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
228228

229229
// Assert
230230
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -258,7 +258,7 @@ public async Task Can_Get_TodoItem_ById()
258258
// Act
259259
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
260260
var body = await response.Content.ReadAsStringAsync();
261-
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);
261+
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
262262

263263
// Assert
264264
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -288,7 +288,7 @@ public async Task Can_Get_TodoItem_WithOwner()
288288
// Act
289289
var response = await _fixture.MakeRequest<TodoItem>(description, httpMethod, route);
290290
var body = await response.Content.ReadAsStringAsync();
291-
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);
291+
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
292292

293293
// Assert
294294
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
@@ -343,7 +343,7 @@ public async Task Can_Post_TodoItem()
343343
// Act
344344
var response = await _fixture.MakeRequest<TodoItem>(description, request);
345345
var body = await response.Content.ReadAsStringAsync();
346-
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);
346+
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
347347

348348
// Assert
349349
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
@@ -390,7 +390,7 @@ public async Task Can_Patch_TodoItem()
390390
// Act
391391
var response = await _fixture.MakeRequest<TodoItem>(description, request);
392392
var body = await response.Content.ReadAsStringAsync();
393-
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);
393+
var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext, _fixture.GetService<AppDbContext>());
394394

395395
// Assert
396396
Assert.Equal(HttpStatusCode.OK, response.StatusCode);

0 commit comments

Comments
 (0)