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