Files
sequence/services/csharp/example/Infrastructure/KebabCaseParameterTransformer.cs
T
Vitalii Litvinchuk 23958e8e2c first commit
2026-06-13 23:23:50 +03:00

22 lines
630 B
C#

using System.Text.RegularExpressions;
using Microsoft.AspNetCore.Routing;
namespace SequenceAuth.Example.Infrastructure;
public class KebabCaseParameterTransformer : IOutboundParameterTransformer
{
public string? TransformOutbound(object? value)
{
return value == null ? null : value.ToString()!.ToKebabCase();
}
}
public static partial class StringExtension
{
[GeneratedRegex("([a-z0-9])([A-Z])", RegexOptions.Compiled)]
private static partial Regex KebabCaseRule();
public static string ToKebabCase(this string input)
=> KebabCaseRule().Replace(input, "$1-$2").ToLower().Trim('-');
}