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(); } }