feat(api): GeneratorTemplateRequest принимает несколько масок ЭК и статусов ЭК

This commit is contained in:
Mikhail Trubnikov
2024-06-26 09:05:30 +10:00
parent 19a812034d
commit 5e03605239
3 changed files with 68 additions and 19 deletions

View File

@@ -17,15 +17,21 @@
/// </summary> /// </summary>
public required string Action { get; set; } public required string Action { get; set; }
/// <summary> ///// <summary>
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС ///// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
/// </summary> ///// </summary>
public required string Ek { get; set; } //public required string Ek { get; set; }
/// <summary> /// <summary>
/// Статус ЭК. 0 - все статусы, 1,2,3,4,5,6,7,9 /// ЭК, принимает список маск. Например: *, ВРТ-*-ДВС
/// </summary> /// </summary>
public int Status { get; set; } public required List<string> Ek { get; set; }
/// <summary>
/// Список статусов ЭК. 0 - все статусы, 1,2,3,4,5,6,7,9
/// </summary>
public required List<int> Status { get; set; }
/// <summary> /// <summary>
/// При создании, активировать шаблон /// При создании, активировать шаблон

View File

@@ -46,22 +46,50 @@ namespace PARR.API.Controllers.V1
if (!resultValidate.IsValid) if (!resultValidate.IsValid)
return BadRequest(new Response(resultValidate.Errors)); return BadRequest(new Response(resultValidate.Errors));
var obj = new GeneratorTemplateMq var result = true;
request.Ek.ForEach(ek =>
{ {
Action = request.Action, request.Status.ForEach(status =>
ApplicationId = request.ApplicationId, {
Ek = request.Ek, var obj = new GeneratorTemplateMq
WorkId = request.WorkId, {
StatusEk = request.Status, Action = request.Action,
IsActiveTemplate = request.IsActiveTemplate, ApplicationId = request.ApplicationId,
IsActiveSchedule = request.IsActiveSchedule 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<ErrorModel> { new ErrorModel { Message = $"Ошибка при отправке данных." } })); return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при отправке данных." } }));
var createdUri = uriService.GetAllUri(ApiRoutes.Template.GetAll); var createdUri = uriService.GetAllUri(ApiRoutes.Template.GetAll);

View File

@@ -2,6 +2,7 @@
using PARR.API.Contracts.V1.Requests; using PARR.API.Contracts.V1.Requests;
using PARR.BLL.Contracts; using PARR.BLL.Contracts;
using PARR.DAL.Services.Interfaces; using PARR.DAL.Services.Interfaces;
using System.Linq;
namespace PARR.API.Validators namespace PARR.API.Validators
{ {
@@ -32,7 +33,21 @@ namespace PARR.API.Validators
//0 - все статусы, 1,2,3,4,5,6,7,9 //0 - все статусы, 1,2,3,4,5,6,7,9
var ekStatuses = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 9 }; var ekStatuses = new List<int> { 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<bool> IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId) private async Task<bool> IsApplicationContainWork(GeneratorTemplateRequest request, Guid applicationId)