diff --git a/PARR.TemplateUpdater/Services/TemplateUpdaterService.cs b/PARR.TemplateUpdater/Services/TemplateUpdaterService.cs
index 668c7d73..c4f0cecd 100644
--- a/PARR.TemplateUpdater/Services/TemplateUpdaterService.cs
+++ b/PARR.TemplateUpdater/Services/TemplateUpdaterService.cs
@@ -170,13 +170,35 @@ namespace PARR.TemplateUpdater.Services
///
private async Task IsValidAsync(TemplateUpdaterMq query)
{
- var template = await templateService.Get().AsNoTracking().AnyAsync(t => t.Id == query.TemplateId);
- if (!template)
+ var template= await templateService.Get().AsNoTracking()
+ .Include(t=>t.RobotConfigurations)
+ .FirstOrDefaultAsync(t => t.Id == query.TemplateId);
+
+ if (template == null)
{
logger.LogError("Сообщение не валидно. Не найден шаблон с id: {TemplateId}", query.TemplateId);
return false;
}
+ if(template.ScheduleEsppId == null)
+ {
+ logger.LogError("Сообщение не валидно. Номер расписания не может быть null, робот не сможет обновить шаблон: {TemplateName}", query.Name);
+ return false;
+ }
+
+ var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, template);
+ if (config == null)
+ {
+ logger.LogError("Сообщение не валидно. Не создана конфигурация роботов: {TemplateName}", query.Name);
+ return false;
+ }
+
+ if (config.TaskStatusCode != (int)TaskStatusEnum.Ok)
+ {
+ logger.LogError("Сообщение не валидно. Не закончено создание или предыдущее обновление - нельзя начинать новое изменение шаблона: {TemplateName}", query.Name);
+ return false;
+ }
+
if (string.IsNullOrEmpty(query.Name?.Trim()))
{
logger.LogError("Сообщение не валидно. Имя шаблона не может быть пустым: {TemplateName}", query.Name);