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);
 }
Example #2
0
        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);
 }