From 4aff13dfb12696c5a31b2a692fd9be5f886544f1 Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Tue, 17 Sep 2024 11:30:33 +1000 Subject: [PATCH] =?UTF-8?q?feat(templateActivator):=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=D0=BE=D0=B2=20=D0=B0=D0=B2=D1=82=D0=BE-=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.TemplateActivator/TemplateActivator.cs | 150 +++++++++++++++++++- 1 file changed, 147 insertions(+), 3 deletions(-) diff --git a/PARR.TemplateActivator/TemplateActivator.cs b/PARR.TemplateActivator/TemplateActivator.cs index f6c6af2f..4525d793 100644 --- a/PARR.TemplateActivator/TemplateActivator.cs +++ b/PARR.TemplateActivator/TemplateActivator.cs @@ -1,9 +1,12 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; +using PARR.BLL.Helpers; using PARR.Constants; using PARR.DAL.Contracts; using PARR.DAL.Models; using PARR.DAL.Services.Interfaces; +using System.Threading.Channels; +using System.Threading.Tasks; namespace PARR.TemplateActivator; @@ -12,16 +15,22 @@ internal class TemplateActivator : ITemplateActivator private readonly ILogger logger; private readonly ITemplateService templateService; private readonly IRobotConfigurationService robotConfigurationService; + private readonly IJobAutoControlService jobAutoControlService; + private readonly IApplicationsInWorkService applicationsInWorkService; public TemplateActivator( ILogger logger, ITemplateService templateService, - IRobotConfigurationService robotConfigurationService + IRobotConfigurationService robotConfigurationService, + IJobAutoControlService jobAutoControlService, + IApplicationsInWorkService applicationsInWorkService ) { this.logger = logger; this.templateService = templateService; this.robotConfigurationService = robotConfigurationService; + this.jobAutoControlService = jobAutoControlService; + this.applicationsInWorkService = applicationsInWorkService; } @@ -82,16 +91,121 @@ internal class TemplateActivator : ITemplateActivator ); changes = await UpdateScheduleStateAsync(query, false); break; + case TemplateActivatorActionsEnum.ActivateAllForAutoControl: + logger.LogInformation($"Получен запрос на активацию шаблонов и расписаний, для ЭК удовлетворяющим условиям автоконтроля"); + changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, true); + break; + case TemplateActivatorActionsEnum.DeactivateAllForAutoControl: + logger.LogInformation($"Получен запрос на деактивацию шаблонов и расписаний, для ЭК неудовлетворяющим условиям автоконтроля"); + changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, false); + break; default: break; } if (changes > 0 && !await templateService.CommitAsync()) - logger.LogError($"{this.GetType} не удалось записать измения в БД о новых состояниях шаблонов и расписаний регламентной работы Id {applicationInWorkId}"); + logger.LogError($"{GetType().Name} не удалось записать измения в БД о новых состояниях шаблонов и расписаний регламентной работы Id {applicationInWorkId}"); - logger.LogDebug($"{GetType} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}"); + logger.LogDebug($"{GetType().Name} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}"); } + private async Task CoordinateJobsWithAutoControl(Guid applicationInWorkId, IQueryable