diff --git a/csharp/lib/Units/Json/Converters.cs b/csharp/lib/Units/Json/Converters.cs new file mode 100644 index 000000000..81406754f --- /dev/null +++ b/csharp/lib/Units/Json/Converters.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using InnovEnergy.Units.Json; + +// ReSharper disable once CheckNamespace +namespace InnovEnergy.Units; + +public static partial class Units +{ + public static IReadOnlyList JsonConverters = new JsonConverter[] + { + new CurrentConverter(), + new VoltageConverter(), + new PowerConverter(), + new ResistanceConverter() + }; +} \ No newline at end of file diff --git a/csharp/lib/Units/Json/CurrentConverter.cs b/csharp/lib/Units/Json/CurrentConverter.cs new file mode 100644 index 000000000..93733110f --- /dev/null +++ b/csharp/lib/Units/Json/CurrentConverter.cs @@ -0,0 +1,17 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace InnovEnergy.Units.Json; + +public class CurrentConverter : JsonConverter +{ + public override Current Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return new Current(reader.GetDecimal()); + } + + public override void Write(Utf8JsonWriter writer, Current value, JsonSerializerOptions options) + { + writer.WriteNumberValue(value.Value); + } +} \ No newline at end of file diff --git a/csharp/lib/Units/Json/PowerConverter.cs b/csharp/lib/Units/Json/PowerConverter.cs new file mode 100644 index 000000000..037252da4 --- /dev/null +++ b/csharp/lib/Units/Json/PowerConverter.cs @@ -0,0 +1,17 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace InnovEnergy.Units.Json; + +public class PowerConverter : JsonConverter +{ + public override Power Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return new Power(reader.GetDecimal()); + } + + public override void Write(Utf8JsonWriter writer, Power value, JsonSerializerOptions options) + { + writer.WriteNumberValue(value.Value); + } +} \ No newline at end of file diff --git a/csharp/lib/Units/Json/ResistanceConverter.cs b/csharp/lib/Units/Json/ResistanceConverter.cs new file mode 100644 index 000000000..022daff8c --- /dev/null +++ b/csharp/lib/Units/Json/ResistanceConverter.cs @@ -0,0 +1,17 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace InnovEnergy.Units.Json; + +public class ResistanceConverter : JsonConverter +{ + public override Current Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return new Current(reader.GetDecimal()); + } + + public override void Write(Utf8JsonWriter writer, Current value, JsonSerializerOptions options) + { + writer.WriteNumberValue(value.Value); + } +} \ No newline at end of file diff --git a/csharp/lib/Units/Json/VoltageConverter.cs b/csharp/lib/Units/Json/VoltageConverter.cs new file mode 100644 index 000000000..62922c1d7 --- /dev/null +++ b/csharp/lib/Units/Json/VoltageConverter.cs @@ -0,0 +1,17 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace InnovEnergy.Units.Json; + +public class VoltageConverter : JsonConverter +{ + public override Voltage Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return new Voltage(reader.GetDecimal()); + } + + public override void Write(Utf8JsonWriter writer, Voltage value, JsonSerializerOptions options) + { + writer.WriteNumberValue(value.Value); + } +} \ No newline at end of file