using FluentValidation; using FrontOffice.BFF.Package.Protobuf.Protos.Package; namespace FrontOffice.BFF.Package.Protobuf.Validator; public class CreateNewPackageRequestValidator : AbstractValidator { public CreateNewPackageRequestValidator() { RuleFor(model => model.Title) .NotEmpty(); RuleFor(model => model.Description) .NotEmpty(); RuleFor(model => model.ImagePath) .NotEmpty(); RuleFor(model => model.Price) .NotNull(); } public Func>> ValidateValue => async (model, propertyName) => { var result = await ValidateAsync(ValidationContext.CreateWithOptions((CreateNewPackageRequest)model, x => x.IncludeProperties(propertyName))); if (result.IsValid) return Array.Empty(); return result.Errors.Select(e => e.ErrorMessage); }; }