public void Define_rule()
        {
            var conditions = new RuleCondition[]
                {
                    Conditions.Equal((Order x) => x.Name, "JOE"),
                    Conditions.GreaterThan((Order x) => x.Amount, 10000.0m),
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate<Order>((session,x) => { _result = x; }),
                    Consequences.Delegate<Order>((session,x) => { _resultB = x; }),
                };

            _rule = new OdoyuleRule("RuleA", conditions, consequences);
            _rule2 = new OdoyuleRule("RuleB", conditions, consequences);

            conditions = new RuleCondition[]
                {
                    Conditions.Equal((Account a) => a.Name, "JOE"),
                };

            consequences = new RuleConsequence[]
                {
                    Consequences.Delegate((Session session, Account a) => { }),
                };

            _rule3 = new OdoyuleRule("RuleC", conditions, consequences);
        }
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
            {
                Conditions.Equal((Order x) => x.Name, "JOE"),
                Conditions.GreaterThan((Order x) => x.Amount, 10000.0m),
            };

            var consequence  = new DelegateConsequence <Order>((session, x) => { _result = x; });
            var consequence1 = new DelegateConsequence <Order>((session, x) => { _resultB = x; });
            var consequences = new RuleConsequence[]
            {
                consequence,
                consequence1,
            };

            _rule  = new SemanticRule("RuleA", conditions, consequences);
            _rule2 = new SemanticRule("RuleB", conditions, consequences);

            conditions = new RuleCondition[]
            {
                Conditions.Equal((Account a) => a.Name, "JOE"),
            };

            var consequence2 = new DelegateConsequence <Account>((Session session, Account a) => { });

            consequences = new RuleConsequence[]
            {
                consequence2,
            };

            _rule3 = new SemanticRule("RuleC", conditions, consequences);
        }
Exemple #3
0
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
                {
                    Conditions.NotNull((Order x) => x.Customer),
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate<Order>((session,x) => { _result = x; }),
                };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #4
0
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
            {
                Conditions.Equal((Order x) => x.Name, "JOE"),
            };

            var consequences = new RuleConsequence[]
            {
                Consequences.Delegate <Order>((session, x) => { _result = x; }),
            };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
                {
                    Conditions.GreaterThanOrEqual((Order x) => x.Amount, 10000.0m),
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate<Order>((session,x) => { _result = x; }),
                };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
            {
                Conditions.GreaterThan((Order x) => x.Amount, 10000.0m),
            };

            var consequences = new RuleConsequence[]
            {
                Consequences.Delegate <Order>((session, x) => { _result = x; }),
            };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #7
0
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
                {
                    Conditions.Equal((Order x) => x.Name, "JOE"),
                    Conditions.GreaterThan((Order x) => x.Amount, 10000.0m),
                    Conditions.Equal((Order x) => x.Purchaser.AccountNumber, "DIRT"),
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate((Session session, Order x) => { _result = x; }),
                    Consequences.Delegate((Session session, Order x) => { _resultB = x; }),
                };

            _rule = new OdoyuleRule("RuleA", conditions, consequences);
            _rule2 = new OdoyuleRule("RuleB", conditions, consequences);
        }
Exemple #8
0
        public void Define_rule()
        {
            var conditions = new RuleCondition[]
            {
                Conditions.Equal((Order x) => x.Name, "JOE"),
                Conditions.GreaterThan((Order x) => x.Amount, 10000.0m),
                Conditions.Equal((Order x) => x.Purchaser.AccountNumber, "DIRT"),
            };

            var consequences = new RuleConsequence[]
            {
                Consequences.Delegate((Session session, Order x) => { _result = x; }),
                Consequences.Delegate((Session session, Order x) => { _resultB = x; }),
            };

            _rule  = new OdoyuleRule("RuleA", conditions, consequences);
            _rule2 = new OdoyuleRule("RuleB", conditions, consequences);
        }
Exemple #9
0
        public void Define_rule()
        {
            _results = new List<Tuple<OrderLine, int>>();

            var conditions = new RuleCondition[]
                {
                    Conditions.Each<Order, IList<OrderLine>, OrderLine>(x => x.Lines),
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate<Token<Token<Order, IList<OrderLine>>, Tuple<OrderLine, int>>>(
                        (session,x) => _results.Add(x.Item2)),
                };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #10
0
        public void Define_rule()
        {
            _results = new List<Order>();

            var conditions = new RuleCondition[]
                {
                    Conditions.Exists((Order x) => x.Lines), //,
                    //Conditions.Equal((OrderLine x) => x.ItemNumber == "123"));
                };

            var consequences = new RuleConsequence[]
                {
                    Consequences.Delegate<Order>((session,x) => _results.Add(x)),
                };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #11
0
        public void Define_rule()
        {
            _results = new List <Order>();

            var conditions = new RuleCondition[]
            {
                Conditions.Exists((Order x) => x.Lines),     //,
                //Conditions.Equal((OrderLine x) => x.ItemNumber == "123"));
            };

            var consequences = new RuleConsequence[]
            {
                Consequences.Delegate <Order>((session, x) => _results.Add(x)),
            };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #12
0
        public void Define_rule()
        {
            _results = new List <Tuple <OrderLine, int> >();

            var conditions = new RuleCondition[]
            {
                Conditions.Each <Order, IList <OrderLine>, OrderLine>(x => x.Lines),
            };

            var consequences = new RuleConsequence[]
            {
                Consequences.Delegate <Token <Token <Order, IList <OrderLine> >, Tuple <OrderLine, int> > >(
                    (session, x) => _results.Add(x.Item2)),
            };

            Rule rule = new OdoyuleRule("RuleA", conditions, consequences);

            _engine = RulesEngineFactory.New(x => x.Add(rule));
        }
Exemple #13
0
 public RuleConsequenceConfigurator(RuleConsequence <T> consequence)
 {
     _consequence = consequence;
 }
 public void AddConsequence <T>(RuleConsequence <T> consequence)
     where T : class
 {
     _consequences.Add(consequence);
 }
Exemple #15
0
 public void AddConsequence <T>(RuleConsequence <T> consequence)
 {
     _consequences.Add(consequence);
 }