tcloud compatibility, dotnet bug fixes

This commit is contained in:
Steve Androulakis
2025-02-14 11:10:16 -08:00
parent a9d8a2a631
commit d6bbb900b7
12 changed files with 227 additions and 53 deletions

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace TrainSearchWorker.Converters
{
public class SingleOrArrayConverter<T> : JsonConverter<List<T>>
{
public override List<T> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.StartArray)
{
return JsonSerializer.Deserialize<List<T>>(ref reader, options) ?? new List<T>();
}
else
{
// Single element wrap it in a list.
T element = JsonSerializer.Deserialize<T>(ref reader, options);
return new List<T> { element };
}
}
public override void Write(Utf8JsonWriter writer, List<T> value, JsonSerializerOptions options)
{
JsonSerializer.Serialize(writer, value, options);
}
}
}