books/backend/Books.Api/EventFlow/Customs/Casing.cs

31 lines
743 B
C#
Raw Normal View History

using System.Reflection;
namespace Books.Api.EventFlow.Customs;
public static class Casing
{
public static string ToSnakeCase(this string input)
{
if (string.IsNullOrEmpty(input))
return input;
var stringBuilder = new System.Text.StringBuilder();
for (var i = 0; i < input.Length; i++)
{
var c = input[i];
if (char.IsUpper(c))
{
if (i > 0)
{
stringBuilder.Append('_');
}
stringBuilder.Append(char.ToLower(c));
}
else
{
stringBuilder.Append(c);
}
}
return stringBuilder.ToString();
}
}