NamingHelper.cs 1016 B

123456789101112131415161718192021222324252627282930313233343536
  1. namespace QuestPDF.InteropGenerators;
  2. /// <summary>
  3. /// Helper class for naming convention conversions
  4. /// </summary>
  5. public static class NamingHelper
  6. {
  7. /// <summary>
  8. /// Converts PascalCase to SCREAMING_SNAKE_CASE
  9. /// </summary>
  10. /// <param name="pascalCase">String in PascalCase format</param>
  11. /// <returns>String in SCREAMING_SNAKE_CASE format</returns>
  12. public static string ToSnakeCase(string pascalCase)
  13. {
  14. if (string.IsNullOrEmpty(pascalCase))
  15. return pascalCase;
  16. var result = new System.Text.StringBuilder();
  17. result.Append(char.ToUpperInvariant(pascalCase[0]));
  18. for (int i = 1; i < pascalCase.Length; i++)
  19. {
  20. if (char.IsUpper(pascalCase[i]))
  21. {
  22. result.Append('_');
  23. result.Append(pascalCase[i]);
  24. }
  25. else
  26. {
  27. result.Append(char.ToUpperInvariant(pascalCase[i]));
  28. }
  29. }
  30. return result.ToString();
  31. }
  32. }