Skip to content

Commit

Permalink
fix PeriodJsonConverter (#475)
Browse files Browse the repository at this point in the history
  • Loading branch information
iatsuta authored Sep 16, 2024
1 parent c956a72 commit 67131fe
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Text.Json.Serialization;
#nullable enable

using System.Text.Json.Serialization;
using System.Text.Json;

using Framework.Core;
Expand All @@ -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)
Expand All @@ -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)
{
Expand All @@ -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));
}
}
6 changes: 3 additions & 3 deletions src/__SolutionItems/CommonAssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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")]
Expand Down

0 comments on commit 67131fe

Please sign in to comment.