summaryrefslogtreecommitdiffstats
path: root/src/server/Utilities/SnakeCaseNamingPolicy.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Utilities/SnakeCaseNamingPolicy.cs')
-rw-r--r--src/server/Utilities/SnakeCaseNamingPolicy.cs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/Utilities/SnakeCaseNamingPolicy.cs b/src/server/Utilities/SnakeCaseNamingPolicy.cs
new file mode 100644
index 0000000..9a7f1f3
--- /dev/null
+++ b/src/server/Utilities/SnakeCaseNamingPolicy.cs
@@ -0,0 +1,15 @@
+namespace IOL.BookmarkThing.Server.Utilities;
+
+public class SnakeCaseNamingPolicy : JsonNamingPolicy
+{
+ public static SnakeCaseNamingPolicy Instance { get; } = new SnakeCaseNamingPolicy();
+
+ public override string ConvertName(string name) {
+ // Conversion to other naming convention goes here. Like SnakeCase, KebabCase etc.
+ return ToSnakeCase(name);
+ }
+
+ private static string ToSnakeCase(string str) {
+ return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower();
+ }
+}