2b8fe77fac
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/21
31 lines
1.7 KiB
C#
31 lines
1.7 KiB
C#
namespace Tnsu.ApprovalRoute.Application.Approvals;
|
|
|
|
/// <summary>
|
|
/// Конвенция имён списков портала заявок: у каждой пары списков имя данных и имя
|
|
/// согласования отличаются только суффиксом после длинного тире (см.
|
|
/// Get-NumberedListTitle в request-portal/provisioning/Provision-Lists.ps1 —
|
|
/// именно провижинер эти имена и ставит).
|
|
///
|
|
/// Отдельным классом, а не приватным методом сервиса: правило нужно и
|
|
/// напоминаниям (ReminderService), и автосогласованию (AutoApproveService), и
|
|
/// разъехаться между ними оно не должно — переименование одного списка из пары
|
|
/// молча оставило бы один из сценариев без строк.
|
|
/// </summary>
|
|
internal static class ApprovalListNaming
|
|
{
|
|
/// <summary>
|
|
/// «Заявка на приём 1 — данные» → «Заявка на приём 1 — согласование».
|
|
/// null — имя не по конвенции, список согласования по нему не найти.
|
|
/// </summary>
|
|
public static string? ApprovalListTitleFor(string dataListTitle)
|
|
{
|
|
var index = dataListTitle.LastIndexOf('—');
|
|
if (index < 0) return null;
|
|
|
|
var suffix = dataListTitle[(index + 1)..].Trim();
|
|
return suffix.Equals("данные", StringComparison.OrdinalIgnoreCase)
|
|
? $"{dataListTitle[..index].TrimEnd()} — согласование"
|
|
: null;
|
|
}
|
|
}
|