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)