using FluentValidation; using FrontOffice.BFF.User.Protobuf.Protos.User; namespace FrontOfficeMicroservice.Protobuf.Validator.User; public class AcceptContractRequestValidator : AbstractValidator { public AcceptContractRequestValidator() { RuleFor(model => model.Code) .NotEmpty(); RuleFor(model => model.ContractHtml) .NotEmpty(); RuleFor(model => model.SignGuid) .NotEmpty(); } public Func>> ValidateValue => async (model, propertyName) => { var result = await ValidateAsync(ValidationContext.CreateWithOptions((AcceptContractRequest)model, x => x.IncludeProperties(propertyName))); if (result.IsValid) return Array.Empty(); return result.Errors.Select(e => e.ErrorMessage); }; }