using FluentValidation.Results;
public class TestValidator : AbstractValidator<User>
RuleFor(x => x.Name).NotNull().WithSeverity(Severity.Error).WithErrorCode("OMS-001");
RuleFor(x => x.Age).NotEqual(0).WithSeverity(Severity.Warning).WithErrorCode("OMS-002");
public static void Main()
Console.WriteLine("Starting");
var validator = new TestValidator();
Console.WriteLine("Validating");
var results = validator.Validate(user);
var options = new JsonSerializerOptions{WriteIndented = true};
string jsonString = JsonSerializer.Serialize(results, options);
foreach (var failure in results.Errors)
options = new JsonSerializerOptions{WriteIndented = true};
jsonString = JsonSerializer.Serialize(failure, options);
Console.WriteLine(jsonString);
Console.WriteLine("No errors");
public static class ValidationExtension
public static bool HasError(this ValidationResult result)
return result.Errors.Count(x => x.Severity == 0) > 0;