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 expectedName = await GenerateUnusedTemplateNameAsync(template, unusedJob);
|
||||||
|
|
||||||
|
// Извлекаем "базовые" имена
|
||||||
|
var currentBaseName = ExtractBaseName(template.Name);
|
||||||
|
var expectedBaseName = ExtractBaseName(expectedName);
|
||||||
|
|
||||||
// Проверяем, нужно ли обновление
|
// Проверяем, нужно ли обновление
|
||||||
bool needsUpdate = template.JobId != unusedJobId ||
|
bool needsUpdate = template.JobId != unusedJobId ||
|
||||||
!string.Equals(template.Name, expectedName, StringComparison.OrdinalIgnoreCase);
|
currentBaseName != expectedBaseName;
|
||||||
|
|
||||||
if (!needsUpdate)
|
if (!needsUpdate)
|
||||||
{
|
{
|
||||||
@@ -612,4 +616,29 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
|||||||
TimeSpan.FromMinutes(30)
|
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