using Tnsu.ApprovalRoute.Domain.Enums; namespace Tnsu.ApprovalRoute.Application.Common; /// /// Русские названия типов руководителя и ролей в проекте — для всего, что видит /// человек: предупреждения резолва, ошибки валидации, выгрузка маршрутов. Имя /// enum'а («DirectionHead») в тексте для пользователя недопустимо. /// 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() }; /// Название с маленькой буквы — для середины фразы («Не найден руководитель направления»). public static string InSentence(HeadType headType) => Lower(Of(headType)); /// /// Все названия мужского рода («найден руководитель проекта»), кроме «Безопасность» — /// для неё нужна отдельная формулировка, иначе выйдет «найден безопасность». /// 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() }; }