Skip to content

Commit a032768

Browse files
committed
Switch JSON serialization to Newtonsoft.Json
Replaced System.Text.Json with Newtonsoft.Json (JsonConvert) for all serialization and deserialization in EF Core entity configs, audit logging, and plugin metadata reading. Added Newtonsoft.Json NuGet package and removed unused System.Text.Json references. #50
1 parent 98e8814 commit a032768

5 files changed

Lines changed: 14 additions & 12 deletions

File tree

src/FlowSynx.PluginRegistry.Infrastructure/Configurations/PluginVersionEntityConfiguration.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.EntityFrameworkCore.ChangeTracking;
44
using Microsoft.EntityFrameworkCore.Metadata.Builders;
55
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
6+
using Newtonsoft.Json;
67

78
namespace FlowSynx.PluginRegistry.Infrastructure.Configurations;
89

@@ -62,8 +63,8 @@ public void Configure(EntityTypeBuilder<PluginVersionEntity> builder)
6263

6364
// JSON serialization for plugin specifications
6465
var pluginSpecificationConverter = new ValueConverter<List<PluginSpecification>?, string>(
65-
v => System.Text.Json.JsonSerializer.Serialize(v),
66-
v => System.Text.Json.JsonSerializer.Deserialize<List<PluginSpecification>?>(v)
66+
v => JsonConvert.SerializeObject(v),
67+
v => JsonConvert.DeserializeObject<List<PluginSpecification>?>(v)
6768
);
6869

6970
builder.Property(e => e.Specifications)
@@ -72,8 +73,8 @@ public void Configure(EntityTypeBuilder<PluginVersionEntity> builder)
7273

7374
// JSON serialization for plugin operations
7475
var pluginOperationConverter = new ValueConverter<List<PluginOperation>?, string>(
75-
v => System.Text.Json.JsonSerializer.Serialize(v),
76-
v => System.Text.Json.JsonSerializer.Deserialize<List<PluginOperation>?>(v)
76+
v => JsonConvert.SerializeObject(v),
77+
v => JsonConvert.DeserializeObject<List<PluginOperation>?>(v)
7778
);
7879

7980
builder.Property(e => e.Operations)

src/FlowSynx.PluginRegistry.Infrastructure/FlowSynx.PluginRegistry.Infrastructure.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0" />
1111
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.2" />
1212
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.2" />
13+
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
1314
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
1415
</ItemGroup>
1516

src/FlowSynx.PluginRegistry.Infrastructure/Models/Audit/AuditEntry.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
using System.Text.Json;
2-
using FlowSynx.PluginRegistry.Domain.Audit;
1+
using FlowSynx.PluginRegistry.Domain.Audit;
32
using Microsoft.EntityFrameworkCore.ChangeTracking;
3+
using Newtonsoft.Json;
44

55
namespace FlowSynx.PluginRegistry.Infrastructure.Models.Audit;
66

@@ -30,10 +30,10 @@ public AuditEntity ToAudit()
3030
Type = AuditType.ToString(),
3131
TableName = TableName,
3232
DateTime = DateTime.UtcNow,
33-
PrimaryKey = JsonSerializer.Serialize(KeyValues),
34-
OldValues = OldValues.Count == 0 ? null : JsonSerializer.Serialize(OldValues),
35-
NewValues = NewValues.Count == 0 ? null : JsonSerializer.Serialize(NewValues),
36-
AffectedColumns = ChangedColumns.Count == 0 ? null : JsonSerializer.Serialize(ChangedColumns)
33+
PrimaryKey = JsonConvert.SerializeObject(KeyValues),
34+
OldValues = OldValues.Count == 0 ? null : JsonConvert.SerializeObject(OldValues),
35+
NewValues = NewValues.Count == 0 ? null : JsonConvert.SerializeObject(NewValues),
36+
AffectedColumns = ChangedColumns.Count == 0 ? null : JsonConvert.SerializeObject(ChangedColumns)
3737
};
3838
return audit;
3939
}

src/FlowSynx.Pluginregistry/Components/Pages/Manage/Upload.razor

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
@using FlowSynx.PluginRegistry.Domain.Profile
33
@using FlowSynx.Pluginregistry.Services
44
@using System.ComponentModel.DataAnnotations
5-
@using System.Text.Json
65
@using Microsoft.AspNetCore.Authorization
76
@using Microsoft.AspNetCore.Components.Forms
87
@using System.Security.Claims

src/FlowSynx.Pluginregistry/Services/PluginMetadataReader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using FlowSynx.Pluginregistry.Models;
2+
using Newtonsoft.Json;
23
using System.Text.Json;
34

45
namespace FlowSynx.Pluginregistry.Services;
@@ -13,7 +14,7 @@ public async Task<PluginMetadata> ReadAsync(string path)
1314
throw new FileNotFoundException("metadata.json not found.");
1415

1516
var content = await File.ReadAllTextAsync(metadataPath);
16-
var metadata = JsonSerializer.Deserialize<PluginMetadata>(content);
17+
var metadata = JsonConvert.DeserializeObject<PluginMetadata>(content);
1718

1819
if (metadata == null || string.IsNullOrWhiteSpace(metadata.Type) || string.IsNullOrWhiteSpace(metadata.Version))
1920
throw new InvalidDataException("Invalid or incomplete metadata.json.");

0 commit comments

Comments
 (0)