1
0
mirror of synced 2024-11-15 01:33:51 +00:00
PettingZoo/PettingZoo.Core/Rendering/MessageBodyRenderer.cs
Mark van Renswoude c75ea0cc62 Implemented DataAnnotation based validation for Tapeti messages
Fixed class name missing when selecting from Tapeti class
Added Filter to class selection dialog
Fixed or removed some minor todo's
2022-01-03 15:04:00 +01:00

39 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
namespace PettingZoo.Core.Rendering
{
public class MessageBodyRenderer
{
private static readonly Dictionary<string, Func<byte[], string>> ContentTypeHandlers = new()
{
{ "application/json", RenderJson }
};
public static string Render(byte[] body, string? contentType)
{
return contentType != null && ContentTypeHandlers.TryGetValue(contentType, out var handler)
? handler(body)
: Encoding.UTF8.GetString(body);
}
public static string RenderJson(byte[] body)
{
var bodyText = Encoding.UTF8.GetString(body);
try
{
var obj = JsonConvert.DeserializeObject(bodyText);
return JsonConvert.SerializeObject(obj, Formatting.Indented);
}
catch
{
return bodyText;
}
}
}
}