fix(templateMatcher): добавлена логика обработки StatusType, обновляем только когнда действительно поменялось состояние. Была ошибка когда Unsed повторно становился Unsed и в конце шаблона опять дописывался UnixTimeSeconds.
This commit is contained in:
@@ -213,14 +213,18 @@ namespace PARR.TemplateMatcher
|
||||
logger.LogInformation("Шаблон {TemplateId} (UnitId {UnitId}) → деактивация.", template.Id, template.UnitId);
|
||||
}
|
||||
|
||||
bool needsUpdate =
|
||||
template.StatusTypeId != TemplateStatusTypeEnum.Updating &&
|
||||
(
|
||||
template.StatusTypeId != targetStatus ||
|
||||
template.Name != expectedName ||
|
||||
template.IsActiveTemplate != targetIsActiveTemplate ||
|
||||
template.IsActiveSchedule != targetIsActiveSchedule
|
||||
);
|
||||
bool needsUpdate = template.StatusTypeId != TemplateStatusTypeEnum.Updating &&
|
||||
(
|
||||
// 1. Статус изменился (например, Used → Unused или Unused → Used)
|
||||
template.StatusTypeId != targetStatus ||
|
||||
|
||||
// 2. Для Used — имя должно соответствовать шаблону
|
||||
(targetStatus == TemplateStatusTypeEnum.Used && template.Name != expectedName) ||
|
||||
|
||||
// 3. Флаги изменились (редко, но возможно через AutoControl изменение)
|
||||
template.IsActiveTemplate != targetIsActiveTemplate ||
|
||||
template.IsActiveSchedule != targetIsActiveSchedule
|
||||
);
|
||||
|
||||
if (!needsUpdate) continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user