diff --git a/PARR.EsppScheduleSync/ScheduleSyncher.cs b/PARR.EsppScheduleSync/ScheduleSyncher.cs index 8cd0d300..1d4c0338 100644 --- a/PARR.EsppScheduleSync/ScheduleSyncher.cs +++ b/PARR.EsppScheduleSync/ScheduleSyncher.cs @@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using PARR.BLL.Helpers; using PARR.BLL.Services.Interfaces; +using PARR.Constants; using PARR.DAL.Contracts; using PARR.DAL.Models; using PARR.DAL.Services.Interfaces; @@ -135,6 +136,7 @@ namespace PARR.EsppScheduleSync var templateService = scope.ServiceProvider.GetRequiredService(); var candidates = await templateService.Get() + .Include(t => t.RobotConfigurations) .Where(t => t.Name == templateName || t.ScheduleEsppId == esppScheduleId) .ToListAsync(); @@ -161,6 +163,29 @@ namespace PARR.EsppScheduleSync templateByScheduleId.Name, templateByScheduleId.Id ); + + // Принудительно выставляем статус обновления шаблона, так как имя в ЕСПП изменилось + try + { + var robotConfigurationService = scope.ServiceProvider.GetRequiredService(); + + var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, templateByScheduleId); + robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config); + + // Сохраняем изменения в базу данных + if (!await robotConfigurationService.CommitAsync()) + { + logger.LogError("Не удалось сохранить изменения статуса задачи для шаблона Id='{TemplateId}'", templateByScheduleId.Id); + } + else + { + logger.LogDebug($"Для шаблона {nameof(templateByScheduleId.Id)}:{templateByScheduleId.Id} установлен статус {RobotStatusEnum.Wait.ToString()} при обнаружении расхождения имени с ЕСПП"); + } + } + catch (Exception updateEx) + { + logger.LogError(updateEx, "Ошибка при установке статуса обновления для шаблона Id='{TemplateId}'", templateByScheduleId.Id); + } } else if (templateByName != null) {