Files
Deal/src/telegram-service/Deal.Telegram/Dialogs/DialogHue.cs
T
Rustam Khalimov b053d58335 Почистить комментарии от упоминаний процесса
Удалены <remarks>, <summary> сжаты до короткой фразы, вырезаны
ссылки на Task/Ruling/этап/python/прототип; //-комментарии со ссылками
на процесс удалены; то же в .proto. Правила обновлены в
docs/spec/Код-стайл-Дейл.md. Строк комментариев 27210 -> ~19100.
2026-09-11 13:39:39 +03:00

39 lines
1.1 KiB
C#

using System.Text;
namespace Deal.Telegram.Dialogs;
/// <summary>
/// Детерминированный цвет диалога из палитры DIALOG_HUES.
/// </summary>
public static class DialogHue
{
private static readonly string[] Palette =
[
"#3b82f6",
"#38bdf8",
"#f472b6",
"#f59e0b",
"#a78bfa",
"#34d399",
"#fb7185",
"#22c55e",
];
/// <summary>
/// Цвет источника по id диалога и имени
/// </summary>
/// <param name="dialogId">Подписанный id диалога.</param>
/// <param name="name">Отображаемое имя (title/first_name); пустое — как в.</param>
/// <returns>Цвет палитры, hex "#rrggbb".</returns>
public static string Compute(string dialogId, string name)
{
int hash = 0;
foreach (Rune rune in (dialogId + name).EnumerateRunes())
{
hash = (hash * 31 + rune.Value) % Palette.Length;
}
return Palette[hash];
}
}