2026-04-14 12:01:49 +10:00
|
|
|
|
namespace PARR.API.Validators
|
2023-09-20 11:59:09 +10:00
|
|
|
|
{
|
2026-04-14 12:01:49 +10:00
|
|
|
|
//public class GeneratorTemplateRequestValidator : AbstractValidator<GeneratorTemplateRequest>
|
|
|
|
|
|
//{
|
|
|
|
|
|
// private readonly IApplicationsInWorkService applicationsInWorkService;
|
|
|
|
|
|
|
|
|
|
|
|
// private bool? isValid = null;
|
|
|
|
|
|
|
|
|
|
|
|
// public GeneratorTemplateRequestValidator(IApplicationsInWorkService applicationsInWorkService)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// this.applicationsInWorkService = applicationsInWorkService;
|
|
|
|
|
|
|
|
|
|
|
|
// RuleFor(t => t.WorkId)
|
|
|
|
|
|
// .MustAsync(async (entity, value, c) => await IsApplicationContainWork(entity, entity.ApplicationId))
|
|
|
|
|
|
// .WithMessage("У данной работы нет связанных приложений");
|
|
|
|
|
|
|
|
|
|
|
|
// RuleFor(t => t.ApplicationId)
|
|
|
|
|
|
// .MustAsync(async (entity, value, c) => await IsApplicationContainWork(entity, value))
|
|
|
|
|
|
// .WithMessage("У данного приложения нет связанных работ");
|
|
|
|
|
|
|
|
|
|
|
|
// //TODO: возможно сделать проверку, по данному выражению есть ли ЭК
|
|
|
|
|
|
// RuleFor(t => t.Ek).NotEmpty().WithMessage("Недопустимое значение ЭК. Возможные значения: *, ВРТ-*-ДВС");
|
|
|
|
|
|
|
|
|
|
|
|
// RuleFor(t => t.Action)
|
|
|
|
|
|
// .Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString())
|
|
|
|
|
|
// .WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}");
|
|
|
|
|
|
|
|
|
|
|
|
// //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((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)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //чтобы не делать 2 раза валидацию
|
|
|
|
|
|
// if (isValid.HasValue)
|
|
|
|
|
|
// return isValid.Value;
|
|
|
|
|
|
|
|
|
|
|
|
// isValid = await applicationsInWorkService.GetAsync(applicationId, request.WorkId) != null;
|
|
|
|
|
|
|
|
|
|
|
|
// return isValid.Value;
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
2023-09-20 11:59:09 +10:00
|
|
|
|
}
|