From 5e036052396815a3a4470886f92e91b7851775c2 Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Wed, 26 Jun 2024 09:05:30 +1000 Subject: [PATCH] =?UTF-8?q?feat(api):=20GeneratorTemplateRequest=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BC=D0=B0=D1=81?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=AD=D0=9A=20=D0=B8=20=D1=81=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D1=83=D1=81=D0=BE=D0=B2=20=D0=AD=D0=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V1/Requests/GeneratorTemplateRequest.cs | 18 ++++--- .../V1/GeneratorTemplateController.cs | 52 ++++++++++++++----- .../GeneratorTemplateRequestValidator.cs | 17 +++++- 3 files changed, 68 insertions(+), 19 deletions(-) diff --git a/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs b/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs index 88a7ca25..f19c953a 100644 --- a/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs +++ b/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs @@ -17,15 +17,21 @@ /// public required string Action { get; set; } - /// - /// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС - /// - public required string Ek { get; set; } + ///// + ///// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС + ///// + //public required string Ek { get; set; } + /// - /// Статус ЭК. 0 - все статусы, 1,2,3,4,5,6,7,9 + /// ЭК, принимает список маск. Например: *, ВРТ-*-ДВС /// - public int Status { get; set; } + public required List Ek { get; set; } + + /// + /// Список статусов ЭК. 0 - все статусы, 1,2,3,4,5,6,7,9 + /// + public required List Status { get; set; } /// /// При создании, активировать шаблон diff --git a/PARR.API/Controllers/V1/GeneratorTemplateController.cs b/PARR.API/Controllers/V1/GeneratorTemplateController.cs index c621d254..288e3e24 100644 --- a/PARR.API/Controllers/V1/GeneratorTemplateController.cs +++ b/PARR.API/Controllers/V1/GeneratorTemplateController.cs @@ -46,22 +46,50 @@ namespace PARR.API.Controllers.V1 if (!resultValidate.IsValid) return BadRequest(new Response(resultValidate.Errors)); - var obj = new GeneratorTemplateMq + var result = true; + + request.Ek.ForEach(ek => { - Action = request.Action, - ApplicationId = request.ApplicationId, - Ek = request.Ek, - WorkId = request.WorkId, - StatusEk = request.Status, - IsActiveTemplate = request.IsActiveTemplate, - IsActiveSchedule = request.IsActiveSchedule - }; + request.Status.ForEach(status => + { + var obj = new GeneratorTemplateMq + { + Action = request.Action, + ApplicationId = request.ApplicationId, + Ek = ek, + WorkId = request.WorkId, + StatusEk = status, + IsActiveTemplate = request.IsActiveTemplate, + IsActiveSchedule = request.IsActiveSchedule + }; - var msg = JsonSerializer.Serialize(obj); + var msg = JsonSerializer.Serialize(obj); - var result = mqService.Send(mqSettings.GenerateTemplates, new[] { msg }); + var _result = mqService.Send(mqSettings.GenerateTemplates, new[] { msg }); - if (!result.IsSuccess) + if (_result.IsSuccess == false) + result = false; + + }); + }); + + //var obj = new GeneratorTemplateMq + //{ + // Action = request.Action, + // ApplicationId = request.ApplicationId, + // Ek = request.Ek, + // WorkId = request.WorkId, + // StatusEk = request.Status, + // IsActiveTemplate = request.IsActiveTemplate, + // IsActiveSchedule = request.IsActiveSchedule + //}; + + //var msg = JsonSerializer.Serialize(obj); + + //var result = mqService.Send(mqSettings.GenerateTemplates, new[] { msg }); + + //if (!result.IsSuccess) + if (!result) return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при отправке данных." } })); var createdUri = uriService.GetAllUri(ApiRoutes.Template.GetAll); diff --git a/PARR.API/Validators/GeneratorTemplateRequestValidator.cs b/PARR.API/Validators/GeneratorTemplateRequestValidator.cs index 9feb4991..c620223c 100644 --- a/PARR.API/Validators/GeneratorTemplateRequestValidator.cs +++ b/PARR.API/Validators/GeneratorTemplateRequestValidator.cs @@ -2,6 +2,7 @@ using PARR.API.Contracts.V1.Requests; using PARR.BLL.Contracts; using PARR.DAL.Services.Interfaces; +using System.Linq; namespace PARR.API.Validators { @@ -32,7 +33,21 @@ namespace PARR.API.Validators //0 - все статусы, 1,2,3,4,5,6,7,9 var ekStatuses = new List { 0, 1, 2, 3, 4, 5, 6, 7, 9 }; - RuleFor(t => t.Status).Must(t => ekStatuses.Contains(t)).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9"); + //RuleFor(t => t.Status).Must(t => ekStatuses.Contains(t)).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9"); + RuleFor(t => t.Status).Must((statuses) => + { + if (statuses.Count < 1) + return false; + + var isContains = true; + statuses.ForEach(status => + { + if (ekStatuses.Contains(status) == false) + isContains = false; + }); + + return isContains; + }).WithMessage("Допустимые значения: 0 - все статусы, 1,2,3,4,5,6,7,9"); } private async Task IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId)