Esempio n. 1
0
 private void listBoxRules_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (ruleListUpdated)
     {
         return;
     }
     if (listBoxRules.SelectedIndex < 0)
     {
         groupBoxRule.Enabled = false;
         return;
     }
     groupBoxRule.Enabled = true;
     selectedRule = listBoxRules.SelectedItem as GadgetRuleData;
     textBoxRuleName.Text = selectedRule.Name;
     comboBoxRuleSign.SelectedItem = selectedRule.Operation.ToString();
     comboBoxRuleLayer.SelectedItem = selectedRule.Layer;
     comboBoxRuleParameters.SelectedItem = selectedRule.Parameter.ToString();
     textBoxRuleImage.Text = selectedRule.FileName;
     textBoxRuleValue.Text = selectedRule.RegexValue;
 }
Esempio n. 2
0
 private void toolStripButton1_Click(object sender, EventArgs e)
 {
     GadgetRuleData rule = new GadgetRuleData();
     rule.Name = "Rule " + listBoxRules.Items.Count;
     gadgetData.Rules.Add(rule);
     UpdateRules();
     listBoxRules.SelectedItem = rule;
 }
        private bool ProcessRule(GadgetRuleData rule)
        {
            string value = this.data.Tags.Find(x => x.Parameter == rule.Parameter).Value;
            if (value == null)
                return false;
            int int_value = 0;
            int i_res = 0;
            bool is_int = int.TryParse(rule.RegexValue, out int_value);
            Match mc = Regex.Match(value,@"\d+");
            switch (rule.Operation)
            {

                case Operation.Equal:
                     if
                       (is_int && int.TryParse(value, out i_res))
                    {
                        return i_res == int_value;
                    }else if(mc.Success)
                     { return int.Parse(mc.Value) == int_value;
                    }
                    else return String.Compare(rule.RegexValue, value, true) == 0;

                case Operation.Great:
                     if (is_int && int.TryParse(value, out i_res))
                         return i_res > int_value;else
                    if (mc.Success)
                        return int.Parse(mc.Value) > int_value;
                    break;
                case Operation.GreatEqual:
                    if (is_int && int.TryParse(value, out i_res))
                        return i_res >= int_value;
                    else
                        if (mc.Success)
                            return int.Parse(mc.Value) >= int_value;
                    break;
                case Operation.Less:
                    if (is_int && int.TryParse(value, out i_res))
                        return i_res < int_value;
                    else
                        if (mc.Success)
                            return int.Parse(mc.Value) < int_value;
                    break;
                case Operation.LessEqual:
                    if (is_int && int.TryParse(value, out i_res))
                        return i_res <= int_value;
                    else
                        if (mc.Success)
                            return int.Parse(mc.Value) <= int_value;
                    break;
            }
            return false;
        }