Merge branch 'dev' of gitlab.dvgd.oao.rzd:devptk/parr/parr_api into dev
This commit is contained in:
@@ -492,9 +492,13 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
// Генерируем ожидаемое имя один раз
|
||||
var expectedName = await GenerateUnusedTemplateNameAsync(template, unusedJob);
|
||||
|
||||
// Извлекаем "базовые" имена
|
||||
var currentBaseName = ExtractBaseName(template.Name);
|
||||
var expectedBaseName = ExtractBaseName(expectedName);
|
||||
|
||||
// Проверяем, нужно ли обновление
|
||||
bool needsUpdate = template.JobId != unusedJobId ||
|
||||
!string.Equals(template.Name, expectedName, StringComparison.OrdinalIgnoreCase);
|
||||
currentBaseName != expectedBaseName;
|
||||
|
||||
if (!needsUpdate)
|
||||
{
|
||||
@@ -612,4 +616,29 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
TimeSpan.FromMinutes(30)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
private static string ExtractBaseName(string name)
|
||||
{
|
||||
var lastUnderscoreIndex = name.LastIndexOf('_');
|
||||
if (lastUnderscoreIndex > 0)
|
||||
{
|
||||
var suffix = name.Substring(lastUnderscoreIndex + 1);
|
||||
if (long.TryParse(suffix, out long unixTimestampMs))
|
||||
{
|
||||
try
|
||||
{
|
||||
// Проверяем, является ли это валидным временем
|
||||
var dto = DateTimeOffset.FromUnixTimeMilliseconds(unixTimestampMs);
|
||||
return name.Substring(0, lastUnderscoreIndex);
|
||||
}
|
||||
catch (ArgumentOutOfRangeException)
|
||||
{
|
||||
// Значение вне диапазона для DateTimeOffset
|
||||
return name; // Не трогаем имя, если суффикс невалиден
|
||||
}
|
||||
}
|
||||
}
|
||||
return name;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user