2eccd304bb
Вместо длинных пояснений — короткие фразы: «Не найден руководитель направления.», «В проекте не найден руководитель проекта.», «Не проставлен директор Tansu.». Для роли «Безопасность» — «сотрудник службы безопасности», чтобы не получилось «найден безопасность». Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
45 lines
2.5 KiB
C#
45 lines
2.5 KiB
C#
using Tnsu.ApprovalRoute.Domain.Enums;
|
||
|
||
namespace Tnsu.ApprovalRoute.Application.Common;
|
||
|
||
/// <summary>
|
||
/// Русские названия типов руководителя и ролей в проекте — для всего, что видит
|
||
/// человек: предупреждения резолва, ошибки валидации, выгрузка маршрутов. Имя
|
||
/// enum'а («DirectionHead») в тексте для пользователя недопустимо.
|
||
/// </summary>
|
||
public static class StepLabels
|
||
{
|
||
public static string Of(HeadType headType) => headType switch
|
||
{
|
||
HeadType.Chief => "Непосредственный руководитель",
|
||
HeadType.DirectionHead => "Руководитель направления",
|
||
HeadType.DirectorTansu => "Директор Tansu",
|
||
HeadType.ManagingDirectorTansu => "Управляющий директор Tansu",
|
||
HeadType.DepartmentHead => "Руководитель указанного отдела",
|
||
HeadType.CompanyDirectors => "Директора компаний инициатора",
|
||
_ => headType.ToString()
|
||
};
|
||
|
||
/// <summary>Название с маленькой буквы — для середины фразы («Не найден руководитель направления»).</summary>
|
||
public static string InSentence(HeadType headType) => Lower(Of(headType));
|
||
|
||
/// <summary>
|
||
/// Все названия мужского рода («найден руководитель проекта»), кроме «Безопасность» —
|
||
/// для неё нужна отдельная формулировка, иначе выйдет «найден безопасность».
|
||
/// </summary>
|
||
public static string InSentence(ProjectRole projectRole) =>
|
||
projectRole == ProjectRole.Security ? "сотрудник службы безопасности" : Lower(Of(projectRole));
|
||
|
||
private static string Lower(string label) => char.ToLowerInvariant(label[0]) + label[1..];
|
||
|
||
public static string Of(ProjectRole projectRole) => projectRole switch
|
||
{
|
||
ProjectRole.ProjectManager => "Руководитель проекта",
|
||
ProjectRole.Planner => "Планировщик",
|
||
ProjectRole.ManagerHSE => "Менеджер HSE",
|
||
ProjectRole.Security => "Безопасность",
|
||
ProjectRole.Keeper => "Заведующий склада",
|
||
_ => projectRole.ToString()
|
||
};
|
||
}
|