Пример #1
0
        public static string Build(IEnumerable <EntityProperty> properties, IEnumerable <RuleParameters> conditions, Dictionary <string, string> parameters)
        {
            var result = string.Empty;

            foreach (var condition in conditions)
            {
                var property  = properties.FirstOrDefault(x => x.Name == condition.Property);
                var parameter = parameters.FirstOrDefault(x => x.Key == condition.Property);

                if (property != null)
                {
                    var propertyResult = CodeGenFactory
                                         .ConditionalCode(condition.Operator)
                                         .Generate(property, parameter.Value, condition.Value);

                    result = string.Concat(result, " && ", propertyResult);
                }
            }

            //get rid of the last " && "
            result = result.Trim();
            result = result.TrimStart('&');
            result = result.TrimEnd('&');
            result = result.Trim();

            //RulesEngineLogger.Debug("Condition Code Generated: " + result);
            return(result);
        }
Пример #2
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     try
     {
         this.Cursor = Cursors.WaitCursor;
         //TODO: Integrate a BackgroundWorker
         DbTableInfo[] dbTables = CodeGenFactory.GetTables(null,
                                                           Server, Database, UserName, Password, IncludeFilter, FilterPrefix);
         chkLbTables.Items.Clear();
         chkLbTables.Items.AddRange(dbTables);
         this.Cursor = Cursors.Default;
     }
     catch (Exception ex)
     {
         this.Cursor = Cursors.Default;
         Debug.WriteLine(ex.Message);
         MessageBox.Show(ex.Message);
     }
 }