Files
Print_server/Inspectron.Epson/PrintServer/Telemetry/InsinMessageFormatter.cs
2026-07-23 07:39:52 +00:00

27 lines
814 B
C#

using System.Text;
namespace Inspectron.Epson.PrintServer.Telemetry;
public static class InsinMessageFormatter
{
public static string Format(params (string Key, string? Value)[] pairs)
{
var sb = new StringBuilder();
foreach (var (key, value) in pairs)
{
if (string.IsNullOrEmpty(key)) continue;
if (sb.Length > 0) sb.Append(' ');
sb.Append(key).Append('=').Append(FormatValue(value));
}
return sb.ToString();
}
private static string FormatValue(string? value)
{
if (string.IsNullOrEmpty(value)) return string.Empty;
if (value.IndexOf(' ') < 0 && value.IndexOf('"') < 0) return value;
var escaped = value.Replace("\\", "\\\\").Replace("\"", "\\\"");
return $"\"{escaped}\"";
}
}