// Copyright Epic Games, Inc. All Rights Reserved. using System.Globalization; using System.Text.Json; using System.Text.Json.Serialization; namespace HordeServer.Utilities { /// /// Converter for types to Json /// public class TimeSpanJsonConverter : JsonConverter { /// public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { string? str = reader.GetString(); if (str == null) { throw new InvalidDataException("Unable to parse TimeSpan"); } return TimeSpan.Parse(str, CultureInfo.CurrentCulture); } /// public override void Write(Utf8JsonWriter writer, TimeSpan timeSpan, JsonSerializerOptions options) { writer.WriteStringValue(timeSpan.ToString("c")); } } }