public static TradeRule LoadRule(string ruleFileName) { TradeRule rule = null; try { XmlSaveRule xsr = (XmlSaveRule)EZAPI.Toolbox.Serialization.Xml.Deserialize(typeof(XmlSaveRule), ruleFileName); rule = new TradeRule(xsr.Name, xsr.RuleCombination, xsr.RuleType); rule.Active = xsr.Active; foreach (var xsrc in xsr.RuleConditions) { IDataProvider dataProvider1 = MonkeyFactory.CreateDataProviderInstance(xsrc.Value1.Name); IDataProvider dataProvider2 = MonkeyFactory.CreateDataProviderInstance(xsrc.Value2.Name); dataProvider1.SaveData = xsrc.Value1; dataProvider2.SaveData = xsrc.Value2; RuleValue value1 = new RuleValue(dataProvider1); RuleValue value2 = new RuleValue(dataProvider2); IRuleComparison compare = MonkeyFactory.CreateRuleComparisonInstance(xsrc.Compare.Name); RuleCondition condition = new RuleCondition(value1, compare, value2); rule.AddRuleCondition(condition); } } catch (Exception ex) { // If there is a problem loading the rule, then we return null (not some partial rule). rule = null; ExceptionHandler.TraceException(ex); } return(rule); }
public RuleCondition(RuleValue value1, IRuleComparison compare, RuleValue value2) { this.value1 = value1; this.compare = compare; this.value2 = value2; value1.ValueUpdated += value_ValueUpdated; value2.ValueUpdated += value_ValueUpdated; }
private void comboCompare_SelectedIndexChanged(object sender, EventArgs e) { ShowTrueFalseBox(false); var comparisonName = comboCompare.Text; ruleComparison = ruleComparisons[comparisonName]; CheckConditionEnableTest(); }
public RuleConditionForm(RuleCondition condition) : this() { this.condition = condition; RuleValue v1 = condition.Value1; RuleValue v2 = condition.Value2; IRuleComparison compare = condition.Comparison; throw new NotImplementedException(); /*if (v1.IsNumeric) * { * comboValue1.SelectedItem = "USER_NUMBER"; * numericValue1.Value = v1; * } * else if (v1.ValueType == RuleValueType.TEXT) * { * comboValue1.SelectedItem = "USER_TEXT"; * textValue1.Text = v1; * } * * if (v2.IsNumeric) * { * comboValue2.SelectedItem = "USER_NUMBER"; * numericValue2.Value = v2; * } * else if (v2.ValueType == RuleValueType.TEXT) * { * comboValue2.SelectedItem = "USER_TEXT"; * textValue2.Text = v2; * } * * for (int i=0; i<comboCompare.Items.Count; i++) * { * if (comboCompare.Items[i].ToString().StartsWith(compare.Name)) * { * comboCompare.SelectedIndex = i; * break; * } * }*/ }