private static string PrepareGenericVariableName(string syntax, IXapRuleVariable ruleVariable) { if (syntax.Contains("PROPERTY_NAME")) { ruleVariable.VariableValue = ReplaceEvaluationEngineReservedCharacters(ruleVariable.VariableValue); syntax = syntax.Replace("PROPERTY_NAME", ruleVariable.VariableValue); } return(syntax); }
IXapEvaluationService IXapValidationProvider.LoadRules <T>(T obj, string ruleType) { IXapDataProvider db = null; IXapRuleSet ruleSet = null; IXapRule rule = null; try { string dbEnvironment = string.Empty; string lobName = string.Empty; string componentName = string.Empty; string ruleDependents = string.Empty; GetDbContext <T>(obj, out dbEnvironment, out lobName, out componentName); db = DbFactory.Instance.Db(dbEnvironment, lobName, "CORE.SelectRules"); XapDataReader dr = db.AddParameter(DbFactory.Instance.DbParameter("RuleType", ruleType)) .AddParameter(DbFactory.Instance.DbParameter("LobName", lobName)) .AddParameter(DbFactory.Instance.DbParameter("ComponentName", componentName)) .AddParameter(DbFactory.Instance.DbParameter("NameSpace", obj.GetType().FullName)) .ExecuteReader(); while (dr.Read()) { ruleSet = evaluationService.GetRuleSet(dr.GetString("RuleSet")); evaluationService.AddRuleSet(ruleSet); rule = ruleSet.GetRule(dr.GetString("RuleName")); rule.RuleType = dr.GetString("RuleType"); rule.RuleSyntax = dr.GetString("RuleSyntax"); rule.RuleDescription = dr.GetString("RuleDesc"); rule.RuleMessage = dr.GetString("RuleMessage"); IXapRuleVariable ruleVariable = EvaluationFactory.Instance.CreateRuleVariable(dr.GetString("PropertyName")); rule.AddRuleVariable(ruleVariable); ruleDependents = dr.GetString("Dependencies"); string[] dependents = ruleDependents.Split(','); for (int i = 0; i < dependents.Length; i++) { IXapRuleVariable variableDependent = EvaluationFactory.Instance.CreateRuleVariable(dependents[i]); rule.AddRuleVariable(variableDependent); } ruleSet.AddRule(rule); } return(evaluationService); }catch (XapException ex) { throw; }catch (Exception ex) { throw new XapException($"Error loading validation rules for {obj.GetType().FullName}", ex); } finally { db.CloseConnection(); } }
private static string PrepareGenericVariableValue(string syntax, IXapRuleVariable ruleVariable) { //search and replace for generic rules if (syntax.Contains("PROPERTY_VALUE")) { ruleVariable.VariableValue = ReplaceEvaluationEngineReservedCharacters(ruleVariable.VariableValue); syntax = syntax.Replace("PROPERTY_VALUE", ruleVariable.VariableValue); } return(syntax); }
private static string PrepareVariableAlias(string syntax, IXapRuleVariable ruleVariable) { //search and replace based on class property alias name if (syntax.Contains($"'{ruleVariable.VariableAlias}'")) { ruleVariable.VariableValue = ReplaceEvaluationEngineReservedCharacters(ruleVariable.VariableValue); syntax = syntax.Replace(ruleVariable.VariableAlias, ruleVariable.VariableValue); } return(syntax); }