using System.Data.SqlTypes;
public DateTime EffectiveDate {get; set;}
public bool IsRewrite {get; set;}
public class EntityValidator : AbstractValidator<Entity>
RuleFor(pt => pt.EffectiveDate)
.GreaterThan(date => SqlDateTime.MinValue.Value).WithMessage("PolicyTransaction EffectiveDate {0} is invalid", pt => pt.EffectiveDate)
.Must(ed => ed.Date == DateTime.Today ).When(pt => pt.IsRewrite).WithMessage("PolicyTransaction EffectiveDate {0} must be set to today's date.", pt => pt.EffectiveDate);
public static void Main()
var entityValidator = new EntityValidator();
Entity toValidate = new Entity();
toValidate.EffectiveDate = DateTime.MinValue;
toValidate.IsRewrite = true;
entityValidator.ValidateAndThrow(toValidate);
Console.WriteLine("Everything is fine.");
Console.WriteLine(ex.Message);