diff --git a/EnvelopeGenerator.Application/Common/Extensions/JsonExtensions.cs b/EnvelopeGenerator.Application/Common/Extensions/JsonExtensions.cs
new file mode 100644
index 00000000..628996ce
--- /dev/null
+++ b/EnvelopeGenerator.Application/Common/Extensions/JsonExtensions.cs
@@ -0,0 +1,18 @@
+using System.Text.Json;
+
+namespace EnvelopeGenerator.Application.Common.Extensions;
+
+///
+///
+///
+public static class JsonExtensions
+{
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string ToJson(this object obj, JsonSerializerOptions? options = null)
+ => JsonSerializer.Serialize(obj, options);
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/DocSignedNotification.cs b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/DocSignedNotification.cs
index 1a2fac67..86e7681d 100644
--- a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/DocSignedNotification.cs
+++ b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/DocSignedNotification.cs
@@ -1,4 +1,5 @@
using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiver;
+using EnvelopeGenerator.Application.Common.Extensions;
using EnvelopeGenerator.Domain.Constants;
using MediatR;
using Newtonsoft.Json;
@@ -27,7 +28,7 @@ public record DocSignedNotification(EnvelopeReceiverDto Original) : EnvelopeRece
///
public string EmailAddress => Receiver?.EmailAddress
?? throw new InvalidOperationException($"Receiver is null." +
- $"DocSignedNotification:\n{JsonConvert.SerializeObject(this, Format.Json.ForDiagnostics)}");
+ $"DocSignedNotification:\n{this.ToJson(Format.Json.ForDiagnostics)}");
}
///
diff --git a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/HistoryHandler.cs b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/HistoryHandler.cs
index 409edf59..cac9aa81 100644
--- a/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/HistoryHandler.cs
+++ b/EnvelopeGenerator.Application/Common/Notifications/DocSigned/Handlers/HistoryHandler.cs
@@ -1,4 +1,5 @@
-using EnvelopeGenerator.Application.Histories.Commands;
+using EnvelopeGenerator.Application.Common.Extensions;
+using EnvelopeGenerator.Application.Histories.Commands;
using EnvelopeGenerator.Domain.Constants;
using MediatR;
using Newtonsoft.Json;
@@ -31,7 +32,7 @@ public class HistoryHandler : INotificationHandler
{
if(notification.Receiver is null)
if (notification.Receiver is null)
- throw new InvalidOperationException($"Receiver information is missing in the notification. DocSignedNotification:\n {JsonConvert.SerializeObject(notification, Format.Json.ForDiagnostics)}");
+ throw new InvalidOperationException($"Receiver information is missing in the notification. DocSignedNotification:\n {notification.ToJson(Format.Json.ForDiagnostics)}");
await _sender.Send(new CreateHistoryCommand()
{
diff --git a/EnvelopeGenerator.Application/Common/Notifications/SendMailHandler.cs b/EnvelopeGenerator.Application/Common/Notifications/SendMailHandler.cs
index 121b485e..1e6fd790 100644
--- a/EnvelopeGenerator.Application/Common/Notifications/SendMailHandler.cs
+++ b/EnvelopeGenerator.Application/Common/Notifications/SendMailHandler.cs
@@ -1,6 +1,7 @@
using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
using EnvelopeGenerator.Application.Common.Configurations;
+using EnvelopeGenerator.Application.Common.Extensions;
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain.Entities;
using MediatR;
@@ -101,7 +102,7 @@ public abstract class SendMailHandler : INotificationHandler x.Name == notification.TemplateType.ToString(), cancel)
?? throw new InvalidOperationException($"Receiver information is missing in the notification." +
- $"{typeof(TNotification)}:\n {JsonConvert.SerializeObject(notification, Format.Json.ForDiagnostics)}");
+ $"{typeof(TNotification)}:\n {notification.ToJson(Format.Json.ForDiagnostics)}");
temp.Subject = ReplacePlaceHolders(temp.Subject, placeHolders, MailParams.Placeholders);
diff --git a/EnvelopeGenerator.Domain/Constants/Format.cs b/EnvelopeGenerator.Domain/Constants/Format.cs
index 88f30f32..822eb820 100644
--- a/EnvelopeGenerator.Domain/Constants/Format.cs
+++ b/EnvelopeGenerator.Domain/Constants/Format.cs
@@ -1,6 +1,4 @@
-using Newtonsoft.Json;
-using Newtonsoft.Json.Serialization;
-#if NET
+#if NET
using System.Text.Json;
using System.Text.Json.Serialization;
#endif
@@ -12,15 +10,14 @@ namespace EnvelopeGenerator.Domain.Constants
#region Json Serializer Settings
public static class Json
{
- //TODO: update to use System.Text.Json
- public static readonly JsonSerializerSettings ForDiagnostics = new JsonSerializerSettings()
+#if NET
+ public static readonly JsonSerializerOptions ForDiagnostics = new()
{
- ContractResolver = new CamelCasePropertyNamesContractResolver(),
- Formatting = Formatting.Indented,
- NullValueHandling = NullValueHandling.Include
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ WriteIndented = true,
+ DefaultIgnoreCondition = JsonIgnoreCondition.Never
};
-#if NET
public static readonly JsonSerializerOptions ForAnnotations = new()
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs
index 065a914a..8e00c921 100644
--- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs
+++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs
@@ -1,4 +1,5 @@
using DigitalData.Core.Exceptions;
+using EnvelopeGenerator.Application.Common.Extensions;
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
using EnvelopeGenerator.Domain.Constants;
using MediatR;
@@ -33,7 +34,7 @@ public class DocumentController : ControllerBase
if(byteData is null || byteData.Length == 0)
{
_logger.LogError("Document byte data is null or empty for envelope-receiver entity:\n{envelopeKey}.",
- JsonConvert.SerializeObject(envRcv, Format.Json.ForDiagnostics));
+ envRcv.ToJson(Format.Json.ForDiagnostics));
throw new NotFoundException("Document is empty.");
}