diff --git a/PARR.API/Controllers/V1/GeneratorTemplateController.cs b/PARR.API/Controllers/V1/GeneratorTemplateController.cs index 288e3e24..a2be4f98 100644 --- a/PARR.API/Controllers/V1/GeneratorTemplateController.cs +++ b/PARR.API/Controllers/V1/GeneratorTemplateController.cs @@ -9,6 +9,7 @@ using PARR.API.Services.Interfaces; using PARR.API.Settings; using PARR.BLL.Domain.Mq; using PARR.BLL.Services.Interfaces; +using PARR.Common.Domain; using PARR.Constants; using System.Text.Json; @@ -21,18 +22,21 @@ namespace PARR.API.Controllers.V1 private readonly IMqService mqService; private readonly IUriService uriService; private readonly MqSettings mqSettings; + private readonly IClientService clientService; public GeneratorTemplateController( IValidator validator, IMqService mqService, IUriService uriService, - MqSettings mqSettings + MqSettings mqSettings, + IClientService clientService ) { this.validator = validator; this.mqService = mqService; this.uriService = uriService; this.mqSettings = mqSettings; + this.clientService = clientService; } /// @@ -60,7 +64,8 @@ namespace PARR.API.Controllers.V1 WorkId = request.WorkId, StatusEk = status, IsActiveTemplate = request.IsActiveTemplate, - IsActiveSchedule = request.IsActiveSchedule + IsActiveSchedule = request.IsActiveSchedule, + HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api } }; var msg = JsonSerializer.Serialize(obj); diff --git a/PARR.API/Controllers/V1/TemplateActivatorController.cs b/PARR.API/Controllers/V1/TemplateActivatorController.cs index afa5feb7..4e385f60 100644 --- a/PARR.API/Controllers/V1/TemplateActivatorController.cs +++ b/PARR.API/Controllers/V1/TemplateActivatorController.cs @@ -9,6 +9,7 @@ using PARR.API.Services.Interfaces; using PARR.API.Settings; using PARR.BLL.Domain.Mq; using PARR.BLL.Services.Interfaces; +using PARR.Common.Domain; using PARR.Constants; using PARR.DAL.Services.Interfaces; using System.Text.Json; @@ -26,13 +27,15 @@ namespace PARR.API.Controllers.V1 private readonly IUriService uriService; private readonly MqSettings mqSettings; private readonly IApplicationsInWorkService applicationsInWorkService; + private readonly IClientService clientService; public TemplateActivatorController( IValidator validator, IMqService mqService, IUriService uriService, MqSettings mqSettings, - IApplicationsInWorkService applicationsInWorkService + IApplicationsInWorkService applicationsInWorkService, + IClientService clientService ) { this.validator = validator; @@ -40,6 +43,7 @@ namespace PARR.API.Controllers.V1 this.uriService = uriService; this.mqSettings = mqSettings; this.applicationsInWorkService = applicationsInWorkService; + this.clientService = clientService; } @@ -64,7 +68,8 @@ namespace PARR.API.Controllers.V1 var mqRequest = new TemplateActivatorMq { ApplicationInWorkId = applicationInWorkId, - Action = request.Action + Action = request.Action, + HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api } }; var msg = JsonSerializer.Serialize(mqRequest); diff --git a/PARR.API/Controllers/V1/TemplateController.cs b/PARR.API/Controllers/V1/TemplateController.cs index 960f242a..5c428a8d 100644 --- a/PARR.API/Controllers/V1/TemplateController.cs +++ b/PARR.API/Controllers/V1/TemplateController.cs @@ -11,6 +11,7 @@ using PARR.API.Controllers.V1.Base; using PARR.API.Extensions; using PARR.API.Services.Interfaces; using PARR.BLL.Helpers; +using PARR.Common.Domain; using PARR.Constants; using PARR.DAL.Contracts; using PARR.DAL.DomainModels; @@ -143,7 +144,7 @@ namespace PARR.API.Controllers.V1 robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config); } - if (!await templateService.CommitAsync(new DAL.Models.Base.History.Base.HistoryInitiator { InitiatorComment = "Изменён статус шаблона/расписания", InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api })) + if (!await templateService.CommitAsync(new HistoryInitiator { InitiatorComment = "Изменён статус шаблона/расписания", InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api })) return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка при изменении шаблона." } })); var templateToResponse = await templateService.GetWithIncludes() diff --git a/PARR.BLL/Domain/Mq/GeneratorTemplateMq.cs b/PARR.BLL/Domain/Mq/GeneratorTemplateMq.cs index 82bb432d..a8ac501b 100644 --- a/PARR.BLL/Domain/Mq/GeneratorTemplateMq.cs +++ b/PARR.BLL/Domain/Mq/GeneratorTemplateMq.cs @@ -1,4 +1,6 @@ -namespace PARR.BLL.Domain.Mq +using PARR.Common.Domain; + +namespace PARR.BLL.Domain.Mq { /// /// Модель в MQ, запрос на генерацию шаблона @@ -39,5 +41,10 @@ /// Активировать расписание /// public bool? IsActiveSchedule { get; set; } + + /// + /// Инициатор запроса к генератору + /// + public IHistoryInitiator? HistoryInitiator { get; set; } } } diff --git a/PARR.BLL/Domain/Mq/TemplateActivatorMq.cs b/PARR.BLL/Domain/Mq/TemplateActivatorMq.cs index be406735..71f7b44c 100644 --- a/PARR.BLL/Domain/Mq/TemplateActivatorMq.cs +++ b/PARR.BLL/Domain/Mq/TemplateActivatorMq.cs @@ -1,4 +1,5 @@ -using PARR.Constants; +using PARR.Common.Domain; +using PARR.Constants; namespace PARR.BLL.Domain.Mq { @@ -16,5 +17,10 @@ namespace PARR.BLL.Domain.Mq /// Действие по активации/деактивации /// public TemplateActivatorActionsEnum Action { get; set; } + + /// + /// Инициатор изменений + /// + public IHistoryInitiator? HistoryInitiator { get; set; } } } diff --git a/PARR.DAL/Models/Base/History/Base/HistoryInitiator.cs b/PARR.Common/Domain/HistoryInitiator.cs similarity index 83% rename from PARR.DAL/Models/Base/History/Base/HistoryInitiator.cs rename to PARR.Common/Domain/HistoryInitiator.cs index 382ef73b..3a6d535e 100644 --- a/PARR.DAL/Models/Base/History/Base/HistoryInitiator.cs +++ b/PARR.Common/Domain/HistoryInitiator.cs @@ -1,11 +1,11 @@ using PARR.Constants; -namespace PARR.DAL.Models.Base.History.Base +namespace PARR.Common.Domain { public class HistoryInitiator : IHistoryInitiator { public string? InitiatorIp { get; set; } - public ParrComponentsEnum? InitiatorParrComponentId { get;set; } + public ParrComponentsEnum? InitiatorParrComponentId { get; set; } public string? InitiatorComment { get; set; } } } diff --git a/PARR.DAL/Models/Base/History/Base/IHistoryInitiator.cs b/PARR.Common/Domain/IHistoryInitiator.cs similarity index 94% rename from PARR.DAL/Models/Base/History/Base/IHistoryInitiator.cs rename to PARR.Common/Domain/IHistoryInitiator.cs index 26fe9d2c..c0913803 100644 --- a/PARR.DAL/Models/Base/History/Base/IHistoryInitiator.cs +++ b/PARR.Common/Domain/IHistoryInitiator.cs @@ -1,6 +1,6 @@ using PARR.Constants; -namespace PARR.DAL.Models.Base.History.Base +namespace PARR.Common.Domain { /// /// Инициатор изменений, ведение истории diff --git a/PARR.Common/PARR.Common.csproj b/PARR.Common/PARR.Common.csproj index cfadb03d..66f2d2b6 100644 --- a/PARR.Common/PARR.Common.csproj +++ b/PARR.Common/PARR.Common.csproj @@ -6,4 +6,8 @@ enable + + + + diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs index 30957b0c..7d4820a1 100644 --- a/PARR.DAL/Context/DataContext.cs +++ b/PARR.DAL/Context/DataContext.cs @@ -20,7 +20,7 @@ namespace PARR.DAL.Context public DbSet ApplicationsInHosts { get; set; } public DbSet