Files
AuditLogs/audit-logs/audit-logs/Services/DeepCopyService.cs
T
2025-01-08 10:16:48 +01:00

21 lines
534 B
C#

using audit_logs.Services.Interfaces;
using Newtonsoft.Json;
using System.Threading.Tasks;
namespace audit_logs.Services;
public class DeepCopyService : IDeepCopyService
{
public async Task<T> DeepCopyAsync<T>(T source)
{
var serialized = JsonConvert.SerializeObject(source);
var deserialized = JsonConvert.DeserializeObject<T>(serialized);
if (deserialized == null)
throw new InvalidOperationException("Deserialization resulted in null");
return deserialized;
}
}