internal RulesEngine( IConditionsEvalEngine <TConditionType> conditionsEvalEngine, IRulesDataSource <TContentType, TConditionType> rulesDataSource, RulesEngineOptions rulesEngineOptions) { this.conditionsEvalEngine = conditionsEvalEngine; this.rulesDataSource = rulesDataSource; this.rulesEngineOptions = rulesEngineOptions; }
/// <summary> /// Creates a new set of rules engine options with framework-configured defaults. /// </summary> /// <remarks> /// <para>MissingConditionBehavior = UseDataTypeDefault</para> /// <para>PriotityCriteria = TopmostRuleWins</para> /// <para>DataTypes.Boolean default = default(bool)</para> /// <para>DataTypes.Decimal default = default(decimal)</para> /// <para>DataTypes.Integer default = default(int)</para> /// <para>DataTypes.String default = string.Empty</para> /// </remarks> /// <returns></returns> public static RulesEngineOptions NewWithDefaults() { RulesEngineOptions rulesEngineOptions = new RulesEngineOptions { MissingConditionBehavior = MissingConditionBehaviors.UseDataTypeDefault, PriotityCriteria = PriorityCriterias.TopmostRuleWins }; rulesEngineOptions.DataTypeDefaults[DataTypes.Boolean] = default(bool); rulesEngineOptions.DataTypeDefaults[DataTypes.Decimal] = default(decimal); rulesEngineOptions.DataTypeDefaults[DataTypes.Integer] = default(int); rulesEngineOptions.DataTypeDefaults[DataTypes.String] = string.Empty; return(rulesEngineOptions); }