FluentValidation by Jeremy Skinner

<PackageReference Include="FluentValidation" Version="7.1.0-beta1" />

 IValidationRule

public interface IValidationRule
Defines a rule associated with a property which can have multiple validators.
string RuleSet { get; set; }

Name of the rule-set to which this rule belongs.

The validators that are grouped under this rule.

void ApplyAsyncCondition(Func<object, Task<bool>> predicate, ApplyConditionTo applyConditionTo = 0)

Applies a condition to the rule asynchronously

void ApplyCondition(Func<object, bool> predicate, ApplyConditionTo applyConditionTo = 0)

Applies a condition to the rule

Performs validation using a validation context and returns a collection of Validation Failures.

Performs validation using a validation context and returns a collection of Validation Failures asynchronoulsy.