28 lines
897 B
C#
28 lines
897 B
C#
using AutobusApi.Domain.Enums;
|
|
using FluentValidation;
|
|
|
|
namespace AutobusApi.Application.Employees.Commands.UpdateEmployee;
|
|
|
|
public class UpdateEmployeeCommandValidator : AbstractValidator<UpdateEmployeeCommand>
|
|
{
|
|
public UpdateEmployeeCommandValidator()
|
|
{
|
|
RuleFor(v => v.Id).GreaterThan(0);
|
|
|
|
RuleFor(v => v.FirstName).MinimumLength(2).MaximumLength(32);
|
|
|
|
RuleFor(v => v.LastName).MinimumLength(2).MaximumLength(32);
|
|
|
|
RuleFor(v => v.Patronymic).MinimumLength(2).MaximumLength(32);
|
|
|
|
RuleFor(v => v.Sex).Must(value => Enum.TryParse<Sex>(value, true, out _));
|
|
|
|
RuleForEach(v => v.Documents).ChildRules(document =>
|
|
{
|
|
document.RuleFor(v => v.Type).Must(value => Enum.TryParse<EmployeeDocumentType>(value, true, out _));
|
|
|
|
document.RuleFor(v => v.Information).MinimumLength(2).MaximumLength(256);
|
|
});
|
|
}
|
|
}
|