feat(api): в Works добавлена маска динамической генерации имени шаблона; добавлены Shortcodes; актализированы валидация, запросы,ответы; миграция БД - запрет приёма нулевых значений в маску

This commit is contained in:
Mikhail Kuznetsov
2025-04-17 16:38:35 +10:00
parent ecd3bdac9b
commit a89e7f7b86
14 changed files with 3375 additions and 8 deletions

View File

@@ -1,5 +1,7 @@
using FluentValidation;
using PARR.API.Contracts.V1.Requests;
using PARR.BLL.Services.Interfaces;
using PARR.Constants.Shortcodes;
using PARR.DAL.Services.Interfaces;
namespace PARR.API.Validators
@@ -11,13 +13,27 @@ namespace PARR.API.Validators
private bool? isValid = null;
public WorkRequestValidator(
ITnkService tnkService
ITnkService tnkService,
ITemplateMaskValidator templateMaskValidator
)
{
this.tnkService = tnkService;
RuleFor(t => t.Name).NotEmpty().NotNull();
RuleFor(t => t.TemplateNameMask)
.NotEmpty()
.NotNull();
RuleFor(t => t.TemplateNameMask)
.Must((entity, value, c) => templateMaskValidator
.IsValid(entity.TemplateNameMask))
.WithMessage($"Неверно указана маска имени шаблонов. Обязательными условиями являются" +
$" наличие кодового слова \"ПАРР\" и обязательное использование динамической составляющей" +
$" %ЭК%. Доступные значения динамических составляющих:" +
$" {string.Join(", ", Shortcodes.GetAll().Select(sc => sc.Name + " - " + sc.Description))}"
);
RuleFor(t => t.EsppId).NotEmpty().NotNull().WithMessage("EsppId не может быть пустым");
RuleFor(t => t.TnkId).NotEmpty().NotNull();