Обнновлено до .net10
This commit is contained in:
43
YandexMusic.API/Common/Ynison/UpperSnakeCaseNamingPolicy.cs
Normal file
43
YandexMusic.API/Common/Ynison/UpperSnakeCaseNamingPolicy.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace YandexMusic.API.Common.Ynison;
|
||||
|
||||
/// <summary>Политика именования в формате UPPER_SNAKE_CASE (все буквы верхнего регистра, слова через подчёркивание).</summary>
|
||||
public class UpperSnakeCaseNamingPolicy : SnakeCaseNamingPolicy
|
||||
{
|
||||
/// <summary>Преобразует имя свойства в формат UPPER_SNAKE_CASE.</summary>
|
||||
public override string ConvertName(string name)
|
||||
{
|
||||
var snakeCase = base.ConvertName(name);
|
||||
return snakeCase.ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Базовая политика именования в формате snake_case (все буквы нижнего регистра, слова через подчёркивание).</summary>
|
||||
public class SnakeCaseNamingPolicy : JsonNamingPolicy
|
||||
{
|
||||
/// <summary>Преобразует имя свойства в формат snake_case.</summary>
|
||||
public override string ConvertName(string name)
|
||||
{
|
||||
if (string.IsNullOrEmpty(name))
|
||||
return name;
|
||||
|
||||
var sb = new StringBuilder();
|
||||
for (int i = 0; i < name.Length; i++)
|
||||
{
|
||||
char c = name[i];
|
||||
if (char.IsUpper(c))
|
||||
{
|
||||
if (i > 0)
|
||||
sb.Append('_');
|
||||
sb.Append(char.ToLowerInvariant(c));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(c);
|
||||
}
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user