diff --git a/PARR.EsppSync/SyncService.cs b/PARR.EsppSync/SyncService.cs index 630b5294..f2ad77dc 100644 --- a/PARR.EsppSync/SyncService.cs +++ b/PARR.EsppSync/SyncService.cs @@ -84,12 +84,34 @@ namespace PARR.EsppSync { logger.LogInformation($"Есть изменения, требуется обновление. {esppObject.TemplateName}"); - SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot); + var config = robotConfigurationService.GetFromTemplateByRobotCode(esppObject.Robot, ref template); - if (!await templateService.CommitAsync()) - logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}"); + // Если предыдущий статус был Create или Ок, то ставим ему Update + // пусть даже Create завершился с ошибками, но раз он уже есть в ЕСПП, то изменим на Update, сбросим все счетчики и пусть попробует обновить и исправить все + if (config.TaskStatusCode != (int)TaskStatusEnum.Updating) + { + SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot); + + if (!await templateService.CommitAsync()) + logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}"); + else + logger.LogInformation($"Установлен принудительный статус {TaskStatusEnum.Updating}, Template {template.Name}, Robot: {esppObject.Robot}"); + } else - logger.LogInformation($"Установлен принудительный статус {TaskStatusEnum.Updating}, Template {template.Name}, Robot: {esppObject.Robot}"); + { + // Если пред статус был Update, то ничего не делаем, так его и оставляем, не сбрасывам кол-во попыток и ошибок + logger.LogInformation($"Есть изменения в Template {template.Name}, но предыдущий статус TaskStatusCode: {(TaskStatusEnum)config.TaskStatusCode}. Не меняем статус, будем разбираться вручную."); + } + + #region Old logic + + //SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot); + + //if (!await templateService.CommitAsync()) + // logger.LogError($"Не удалось изменить запись Template {template.Name}, Robot: {esppObject.Robot}"); + //else + // logger.LogInformation($"Установлен принудительный статус {TaskStatusEnum.Updating}, Template {template.Name}, Robot: {esppObject.Robot}"); + #endregion }//надо ли проверять если не изменился, но был статус Updating не понятно. Доверяем роботу пока, что после окончания работ он точно сообщит else {