public void RuleSet_Builder_Test()
        {
            var builder = new RuleSetBuilder()
                          .Rules(
                r => r.If(
                    c => c.Field("Age").IsNotEqual(18)
                    )
                .Then(
                    a => a.Message("Age must be greater or equal to 18")
                    )
                );

            var ruleSet = builder.Build();

            Assert.IsInstanceOfType(ruleSet, typeof(RuleSet));

            var rule = ruleSet.Rules.Single();

            var condition = (FieldIsNotEqual <int>)rule.Condition;

            Assert.AreEqual("Age", condition.FieldName);

            Assert.AreEqual(18, condition.Value);

            var task = (RuleMessageTask)rule.Tasks.Single();

            Assert.AreEqual("Age must be greater or equal to 18", task.Message);
        }
 private PropertySetRuleBuilder(string entityType, Func <TEntity, bool> rulefunc, RuleSetBuilder <TEntity> ruleSetBuilder,
                                string name, string description = "")
     : base(entityType)
 {
     this._rulefunc       = rulefunc;
     this._ruleSetBuilder = ruleSetBuilder;
     this._name           = name;
     this._description    = description;
 }
 private PropertySetRuleBuilder
     (string entityType, string rule, IRuleExpressionParser <TEntity> ruleparser, RuleSetBuilder <TEntity> ruleSetBuilder,
     string name, string description = "")
     : base(entityType)
 {
     this._rule           = rule;
     this._ruleparser     = ruleparser;
     this._ruleSetBuilder = ruleSetBuilder;
     this._name           = name;
     this._description    = description;
 }
 internal static PropertySetRuleBuilder <TEntity> Create
     (string entityType, Func <TEntity, bool> rulefunc, RuleSetBuilder <TEntity> ruleSetBuilder, string name, string description = "")
 {
     return(new PropertySetRuleBuilder <TEntity>(entityType, rulefunc, ruleSetBuilder, name, description));
 }
 internal static PropertySetRuleBuilder <TEntity> Create(string entityType, string rule,
                                                         IRuleExpressionParser <TEntity> ruleparser, RuleSetBuilder <TEntity> ruleSetBuilder, string name, string description = "")
 {
     return(new PropertySetRuleBuilder <TEntity>(entityType, rule, ruleparser, ruleSetBuilder, name, description));
 }