示例#1
0
        public static AddFactConsequence <T, TFact> Add <T, TFact>(Func <T, TFact> factFactory)
            where T : class
            where TFact : class
        {
            var consequence = new AddFactConsequence <T, TFact>(factFactory);

            return(consequence);
        }
        public static void Add <T, TFact>(this ThenConfigurator <T> configurator,
                                          Func <T, TFact> factFactory)
            where T : class
            where TFact : class
        {
            AddFactConsequence <T, TFact> consequence = Consequences.Add(factFactory);

            var consequenceConfigurator = new RuleConsequenceConfiguratorImpl <T>(consequence);

            configurator.AddConfigurator(consequenceConfigurator);
        }
示例#3
0
        public override bool Visit <T, TFact>(AddFactConsequence <T, TFact> consequence,
                                              Func <SemanticModelVisitor, bool> next)
        {
            _conditionCompiler.MatchJoinNode <T>(joinNode =>
            {
                AddFactProductionNode <T, TFact> node = _configurator.AddFact(consequence.FactFactory);
                joinNode.AddActivation(node);
            });

            return(base.Visit(consequence, next));
        }
示例#4
0
        public static FactDesigner <T> Add <T, TAdd>(this FactDesigner <T> designer, Func <TAdd> factFactory)
            where T : class
            where TAdd : class
        {
            designer.Then(then =>
            {
                AddFactConsequence <T, TAdd> consequence = Consequences.Add <T, TAdd>(x => factFactory());

                var consequenceConfigurator = new RuleConsequenceConfigurator <T>(consequence);

                then.AddConfigurator(consequenceConfigurator);
            });

            return(designer);
        }
示例#5
0
        public static JoinDesigner <TLeft, TRight> Add <TLeft, TRight, T>(this JoinDesigner <TLeft, TRight> designer,
                                                                          Func <Tuple <TLeft, TRight>, T> factFactory)
            where TLeft : class
            where TRight : class
            where T : class
        {
            designer.Then((ThenDesigner <TLeft, TRight> then) =>
            {
                AddFactConsequence <Tuple <TLeft, TRight>, T> consequence = Consequences.Add(factFactory);

                var consequenceConfigurator = new RuleConsequenceConfigurator <Tuple <TLeft, TRight> >(consequence);

                then.AddConfigurator(consequenceConfigurator);
            });

            return(designer);
        }