<PackageReference Include="NJsonSchema" Version="10.1.7" />

ConversionUtilities

public class ConversionUtilities
Provides name conversion utility methods.
using System.Linq; using System.Text; using System.Xml.Linq; namespace NJsonSchema { public class ConversionUtilities { public static string ConvertToLowerCamelCase(string input, bool firstCharacterMustBeAlpha) { if (string.IsNullOrEmpty(input)) return string.Empty; input = ConvertDashesToCamelCase((input[0].ToString().ToLowerInvariant() + input.Substring(1)).Replace(" ", "_").Replace("/", "_")); if (string.IsNullOrEmpty(input)) return string.Empty; if (firstCharacterMustBeAlpha && char.IsNumber(input[0])) return "_" + input; return input; } public static string ConvertToUpperCamelCase(string input, bool firstCharacterMustBeAlpha) { if (string.IsNullOrEmpty(input)) return string.Empty; input = ConvertDashesToCamelCase((input[0].ToString().ToUpperInvariant() + input.Substring(1)).Replace(" ", "_").Replace("/", "_")); if (firstCharacterMustBeAlpha && char.IsNumber(input[0])) return "_" + input; return input; } public static string ConvertToStringLiteral(string input) { StringBuilder stringBuilder = new StringBuilder(input.Length); foreach (char c in input) { switch (c) { case '\'': stringBuilder.Append("\\'"); break; case '"': stringBuilder.Append("\\\""); break; case '\\': stringBuilder.Append("\\\\"); break; case '': stringBuilder.Append("\\0"); break; case '': stringBuilder.Append("\\a"); break; case '\b': stringBuilder.Append("\\b"); break; case ' ': stringBuilder.Append("\\f"); break; case '\n': stringBuilder.Append("\\n"); break; case '\r': stringBuilder.Append("\\r"); break; case '\t': stringBuilder.Append("\\t"); break; case ' ': stringBuilder.Append("\\v"); break; default: if (c >= ' ' && c <= '~') stringBuilder.Append(c); else { stringBuilder.Append("\\u"); StringBuilder stringBuilder2 = stringBuilder; int num = c; stringBuilder2.Append(num.ToString("x4")); } break; } } return stringBuilder.ToString(); } public static string ConvertToCamelCase(string input) { if (string.IsNullOrEmpty(input)) return string.Empty; return ConvertDashesToCamelCase(input.Replace(" ", "_").Replace("/", "_")); } public static string TrimWhiteSpaces(string text) { return text?.Trim('\n', '\r', '\t', ' '); } public static string RemoveLineBreaks(string text) { return text?.Replace("\r", "").Replace("\n", " \n").Replace("\n ", "\n") .Replace(" \n", " \n") .Replace("\n", "") .Trim('\n', '\t', ' '); } public static string Singularize(string word) { if (word == "people") return "Person"; if (!word.EndsWith("s")) return word; return word.Substring(0, word.Length - 1); } public static string Tab(string input, int tabCount) { return input?.Replace("\n", "\n" + string.Join("", Enumerable.Repeat(" ", tabCount))) ?? string.Empty; } public static string ConvertCSharpDocs(string input, int tabCount) { input = (input?.Replace("\r", string.Empty).Replace("\n", "\n" + string.Join("", Enumerable.Repeat(" ", tabCount)) + "/// ") ?? string.Empty); return new XText(input).ToString(); } private static string ConvertDashesToCamelCase(string input) { StringBuilder stringBuilder = new StringBuilder(); bool flag = false; foreach (char c in input) { if (c == '-') flag = true; else if (flag) { stringBuilder.Append(char.ToUpperInvariant(c)); flag = false; } else { stringBuilder.Append(c); } } return stringBuilder.ToString(); } } }