NetworkQualityServer/AS1024.NetworkQuality.Serve.../Utils/SnakeCaseNamingPolicy.cs

32 lines
795 B
C#

using System;
using System.Text.Json;
public class SnakeCaseNamingPolicy : JsonNamingPolicy
{
public override string ConvertName(string name)
{
return string.IsNullOrEmpty(name) ? name : ToSnakeCase(name);
}
private string ToSnakeCase(string name)
{
var stringBuilder = new System.Text.StringBuilder();
for (var i = 0; i < name.Length; i++)
{
if (char.IsUpper(name[i]))
{
if (i > 0)
{
stringBuilder.Append('_');
}
stringBuilder.Append(char.ToLowerInvariant(name[i]));
}
else
{
stringBuilder.Append(name[i]);
}
}
return stringBuilder.ToString();
}
}