using FluentValidation; namespace Indotalent.Shared.Utils; //public static class FluentValidationHelper //{ // public static Func>> ValidateValue(this AbstractValidator validator) => async (model, propertyName) => // { // var result = await validator.ValidateAsync(ValidationContext.CreateWithOptions((T)model, x => x.IncludeProperties(propertyName))); // if (result.IsValid) return Array.Empty(); // return result.Errors.Select(e => e.ErrorMessage); // }; //} public static class FluentValidationHelper { public static Func>> ValidateValue(this AbstractValidator validator) => async (model, propertyName) => { if (model is not T typedModel) return Array.Empty(); var context = ValidationContext.CreateWithOptions(typedModel, x => x.IncludeProperties(propertyName)); var result = await validator.ValidateAsync(context); if (result.IsValid) return Array.Empty(); return result.Errors.Select(e => e.ErrorMessage); }; }