Initial Argus web catalog

This commit is contained in:
Курнат Андрей
2026-06-20 19:55:11 +03:00
commit 5f80c4bf6a
30 changed files with 2620 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
using System.Text;
namespace Argus.Infrastructure;
public static class IdentifierUtility
{
public static string Normalize(string? value, string fallback)
{
if (string.IsNullOrWhiteSpace(value))
{
return fallback;
}
var builder = new StringBuilder(value.Length);
var lastWasSeparator = false;
foreach (var character in value.Trim().ToLowerInvariant())
{
if (char.IsLetterOrDigit(character))
{
builder.Append(character);
lastWasSeparator = false;
continue;
}
if (character is '-' or '_' or '.')
{
if (!lastWasSeparator)
{
builder.Append(character);
lastWasSeparator = true;
}
}
}
var normalized = builder.ToString().Trim('-', '_', '.');
return string.IsNullOrWhiteSpace(normalized) ? fallback : normalized;
}
}