Skip to content

Commit

Permalink
Merge pull request #129 from ActiveCampaign/systemtextjson
Browse files Browse the repository at this point in the history
Migrate to System.Text.Json
  • Loading branch information
MariuszTrybus committed Feb 29, 2024
2 parents 6454fdb + 32908eb commit d9ee8f5
Show file tree
Hide file tree
Showing 38 changed files with 155 additions and 3,276 deletions.
4 changes: 2 additions & 2 deletions src/Postmark.Tests/ClientBaseFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
using PostmarkDotNet;
using System;
using System.IO;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Text.Json;

namespace Postmark.Tests
{
Expand Down Expand Up @@ -58,7 +58,7 @@ private static string ConfigVariable(string variableName)
componentsCount--;
}

var values = JsonConvert.DeserializeObject<Dictionary<String, String>>(File.ReadAllText(keyPath));
var values = JsonSerializer.Deserialize<Dictionary<String, String>>(File.ReadAllText(keyPath));
retval = values[variableName];
}
catch
Expand Down
1 change: 0 additions & 1 deletion src/Postmark.Tests/ClientWebhookTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ public async Task ClientCanCreateConfiguration()
Delivery = new WebhookConfigurationDeliveryTrigger {Enabled = true},
SpamComplaint = new WebhookConfigurationSpamComplaintTrigger {Enabled = true, IncludeContent = true},
SubscriptionChange = new WebhookConfigurationSubscriptionChangeTrigger {Enabled = true},

};
var newConfiguration = await Client.CreateWebhookConfigurationAsync(url, messageStream, httpAuth, httpHeaders, triggers);

Expand Down
224 changes: 0 additions & 224 deletions src/Postmark/Convenience/SystemMailExtensions.cs

This file was deleted.

24 changes: 24 additions & 0 deletions src/Postmark/Converters/DateTimeConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace PostmarkDotNet.Converters
{
public class DateTimeConverter : JsonConverter<DateTime>
{
public override bool CanConvert(Type typeToConvert)
{
return typeToConvert == typeof(DateTime);
}

public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return DateTime.Parse(reader.GetString());
}

public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString("O"));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Newtonsoft.Json;
using System.Text.Json;

namespace PostmarkDotNet.Converters
{
internal static class JsonNetExtensions
internal static class JsonExtensions
{
/// <summary>
/// Attempt to deserialize a string to the specified type.
Expand All @@ -17,15 +17,14 @@ internal static bool TryDeserializeObject<T>(string json, out T result)
result = default(T);
try
{
var settings = new JsonSerializerSettings()
{
MissingMemberHandling = MissingMemberHandling.Ignore,
NullValueHandling = NullValueHandling.Include,
DefaultValueHandling = DefaultValueHandling.Include
};

settings.Converters.Add(new UnicodeJsonStringConverter());
result = JsonConvert.DeserializeObject<T>(json);
result = JsonSerializer.Deserialize<T>(json, new JsonSerializerOptions
{
Converters =
{
new UnicodeJsonStringConverter(),
new DateTimeConverter()
}
});
retval = true;
}
catch
Expand Down
Loading

0 comments on commit d9ee8f5

Please sign in to comment.