Пример #1
0
        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);
        }
Пример #2
0
        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;
             *  }
             * }*/
        }