Auto approve (#21)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/21
This commit was merged in pull request #21.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user