From 67131fe5289d201ccd0ec053bc970ce2ed578b0a Mon Sep 17 00:00:00 2001 From: iatsuta <98311820+iatsuta@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:23:45 +0200 Subject: [PATCH] fix PeriodJsonConverter (#475) --- .../JsonConverter/PeriodJsonConverter.cs | 24 ++++++++++++++----- src/__SolutionItems/CommonAssemblyInfo.cs | 6 ++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/_DomainDriven/Framework.DomainDriven.WebApiNetCore/JsonConverter/PeriodJsonConverter.cs b/src/_DomainDriven/Framework.DomainDriven.WebApiNetCore/JsonConverter/PeriodJsonConverter.cs index 65fe64d3..b137906e 100644 --- a/src/_DomainDriven/Framework.DomainDriven.WebApiNetCore/JsonConverter/PeriodJsonConverter.cs +++ b/src/_DomainDriven/Framework.DomainDriven.WebApiNetCore/JsonConverter/PeriodJsonConverter.cs @@ -1,4 +1,6 @@ -using System.Text.Json.Serialization; +#nullable enable + +using System.Text.Json.Serialization; using System.Text.Json; using Framework.Core; @@ -14,6 +16,8 @@ public override Period Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS var stringComparer = options.PropertyNameCaseInsensitive ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal; + var (startDateName, endDateName) = GetPropertyNames(options.PropertyNamingPolicy); + while (reader.Read()) { if (reader.TokenType == JsonTokenType.EndObject) @@ -24,11 +28,11 @@ public override Period Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS var propertyName = reader.GetString(); reader.Read(); - if (stringComparer.Equals(propertyName, nameof(Period.StartDate))) + if (stringComparer.Equals(propertyName, startDateName)) { startDate = reader.GetDateTime(); } - else if (stringComparer.Equals(propertyName, nameof(Period.EndDate))) + else if (stringComparer.Equals(propertyName, endDateName)) { if (reader.TokenType != JsonTokenType.Null) { @@ -45,16 +49,24 @@ public override void Write(Utf8JsonWriter writer, Period value, JsonSerializerOp { writer.WriteStartObject(); - writer.WriteString(nameof(Period.StartDate), value.StartDate); + var (startDateName, endDateName) = GetPropertyNames(options.PropertyNamingPolicy); + + writer.WriteString(startDateName, value.StartDate); if (value.EndDate.HasValue) { - writer.WriteString(nameof(Period.EndDate), value.EndDate.Value); + writer.WriteString(endDateName, value.EndDate.Value); } else { - writer.WriteNull(nameof(Period.EndDate)); + writer.WriteNull(endDateName); } writer.WriteEndObject(); } + + private static (string StartPropertName, string EndPropertyName) GetPropertyNames(JsonNamingPolicy? namingPolicy) + { + return (namingPolicy?.ConvertName(nameof(Period.StartDate)) ?? nameof(Period.StartDate), + namingPolicy?.ConvertName(nameof(Period.EndDate)) ?? nameof(Period.EndDate)); + } } diff --git a/src/__SolutionItems/CommonAssemblyInfo.cs b/src/__SolutionItems/CommonAssemblyInfo.cs index 0b6caa72..dc436986 100644 --- a/src/__SolutionItems/CommonAssemblyInfo.cs +++ b/src/__SolutionItems/CommonAssemblyInfo.cs @@ -4,9 +4,9 @@ [assembly: AssemblyCompany("Luxoft")] [assembly: AssemblyCopyright("Copyright © Luxoft 2009-2024")] -[assembly: AssemblyVersion("22.2.1.0")] -[assembly: AssemblyFileVersion("22.2.1.0")] -[assembly: AssemblyInformationalVersion("22.2.1.0")] +[assembly: AssemblyVersion("22.2.2.0")] +[assembly: AssemblyFileVersion("22.2.2.0")] +[assembly: AssemblyInformationalVersion("22.2.2.0")] #if DEBUG [assembly: AssemblyConfiguration("Debug")]