34 lines
2.1 KiB
C#
34 lines
2.1 KiB
C#
using FluentValidation;
|
|
using PARR.API.Contracts.V1.Requests;
|
|
using PARR.DAL.Contracts;
|
|
|
|
namespace PARR.API.Validators
|
|
{
|
|
public class JobAutoControlRequestValidator : AbstractValidator<JobAutoControlRequest>
|
|
{
|
|
public JobAutoControlRequestValidator()
|
|
{
|
|
RuleFor(t => t.EkMasks).Must(items =>
|
|
items.Count(t => t.Trim().Length > 0) > 0
|
|
).WithMessage("Должна быть указана хотя бы одна маска ЭК");
|
|
|
|
RuleFor(t => t.EnabledEkStatuses).Must(
|
|
items => items.Distinct().Count() == items.Count()
|
|
).WithMessage("Статусы ЭК не должны повторяться");
|
|
|
|
RuleFor(t => t.EnabledEkStatuses).Must(items =>
|
|
{
|
|
return !items.Any(item => !Enum.IsDefined(typeof(EkStatusEnum), item)) && !items.Any(t => t == 0);
|
|
})
|
|
.WithMessage($"Допустимые значения: {(int)EkStatusEnum.New} ({EkStatusEnum.New}), " +
|
|
$"{(int)EkStatusEnum.Preapre} ({EkStatusEnum.Preapre}), " +
|
|
$"{(int)EkStatusEnum.Exploitation} ({EkStatusEnum.Exploitation}), " +
|
|
$"{(int)EkStatusEnum.Repair} ({EkStatusEnum.Repair}), " +
|
|
$"{(int)EkStatusEnum.Reserve} ({EkStatusEnum.Reserve}), " +
|
|
$"{(int)EkStatusEnum.OutOfService} ({EkStatusEnum.OutOfService}), " +
|
|
$"{(int)EkStatusEnum.Test} ({EkStatusEnum.Test}), " +
|
|
$"{(int)EkStatusEnum.Development} ({EkStatusEnum.Development})");
|
|
}
|
|
}
|
|
}
|