This repository has been archived on 2024-08-06. You can view files and clone it, but cannot push or open issues or pull requests.
linear-app-launcher/Text/Json/JsonSizeConverter.cs

41 lines
1.1 KiB
C#
Raw Normal View History

2021-07-22 23:45:30 +00:00
using System;
using System.Drawing;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace FizzyLauncher.Text.Json
{
public class JsonSizeConverter : JsonConverter<Size>
{
public override Size Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Size rs = new Size(0, 0);
if (reader.TokenType == JsonTokenType.String)
{
string[] parts = reader.GetString().Split(',');
if (parts.Length != 2)
{
return rs;
}
int w = 0;
int h = 0;
if (!int.TryParse(parts[0].Trim(), out w)) w = 0;
if (!int.TryParse(parts[1].Trim(), out h)) h = 0;
return new Size(w, h);
}
return rs;
}
public override void Write(Utf8JsonWriter writer, Size value, JsonSerializerOptions options)
{
writer.WriteStringValue(string.Format("{0}, {1}", value.Width.ToString(), value.Height.ToString()));
}
}
}