Anapher/Strive

View on GitHub
src/Services/ConferenceManagement/Strive.Infrastructure/KeyValue/KeyValueSerializer.cs

Summary

Maintainability
A
0 mins
Test Coverage
using System;
using Newtonsoft.Json;
using Strive.Infrastructure.Serialization;

namespace Strive.Infrastructure.KeyValue
{
    public static class KeyValueSerializer
    {
        private static readonly JsonSerializerSettings Settings = JsonConfig.Default;

        public static string SerializeValue(object? value)
        {
            return JsonConvert.SerializeObject(value, Settings);
        }

        public static T? DeserializeValue<T>(string data)
        {
            if (string.IsNullOrEmpty(data)) return default;
            return JsonConvert.DeserializeObject<T>(data, Settings);
        }

        public static object? DeserializeValue(string data, Type type)
        {
            if (string.IsNullOrEmpty(data)) return default;
            return JsonConvert.DeserializeObject(data, type, Settings);
        }
    }
}