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); }
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); }