private ConditionControlBase GetControlForCondition(ICondition c, ConditionControlBase parent)
        {
            ConditionControlBase control = null;

            if (c == null)
            {
                ConditionPlaceholderControl cpc = new ConditionPlaceholderControl();
                cpc.ParentConditionControl = parent;
                cpc.InsertCondition += new EventHandler<InsertConditionEventArgs>(InsertCondition);
                Controls.Add(cpc);
                control = cpc;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToCondition))
            {
                ResponseStatusEqualToControl ctl = new ResponseStatusEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToNotCondition))
            {
                ResponseStatusNotEqualToControl ctl = new ResponseStatusNotEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsCondition))
            {
                ResponseBodyContainsControl ctl = new ResponseBodyContainsControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsNotCondition))
            {
                ResponseBodyContainsNotControl ctl = new ResponseBodyContainsNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchCondition))
            {
                ResponseBodyContainsRegexControl ctl = new ResponseBodyContainsRegexControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchNotCondition))
            {
                ResponseBodyContainsRegexNotControl ctl = new ResponseBodyContainsRegexNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(AndCondition) || c.GetType() == typeof(OrCondition))
            {
                BinaryCondition bc = c as BinaryCondition;
                BinaryConditionControl ctl = (c.GetType() == typeof(AndCondition) ? (BinaryConditionControl)new AndControl() : (BinaryConditionControl)new OrControl());
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition2 as ICondition, ctl));

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition1 as ICondition, ctl));
            }

            control.ParentConditionControl = parent;

            //if (parent != null)
            //    parent.SubconditionControls.Add(control);

            control.DeleteCondition += new EventHandler<DeleteConditionEventArgs>(DeleteCondition);

            return control;
        }
Пример #2
0
        private ConditionControlBase GetControlForCondition(ICondition c, ConditionControlBase parent)
        {
            ConditionControlBase control = null;

            if (c == null)
            {
                ConditionPlaceholderControl cpc = new ConditionPlaceholderControl();
                cpc.ParentConditionControl = parent;
                cpc.InsertCondition       += new EventHandler <InsertConditionEventArgs>(InsertCondition);
                Controls.Add(cpc);
                control = cpc;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToCondition))
            {
                ResponseStatusEqualToControl ctl = new ResponseStatusEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseStatusCodeEqualToNotCondition))
            {
                ResponseStatusNotEqualToControl ctl = new ResponseStatusNotEqualToControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsCondition))
            {
                ResponseBodyContainsControl ctl = new ResponseBodyContainsControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyContainsNotCondition))
            {
                ResponseBodyContainsNotControl ctl = new ResponseBodyContainsNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchCondition))
            {
                ResponseBodyContainsRegexControl ctl = new ResponseBodyContainsRegexControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(ResponseBodyRegexMatchNotCondition))
            {
                ResponseBodyContainsRegexNotControl ctl = new ResponseBodyContainsRegexNotControl();
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;
            }
            else if (c.GetType() == typeof(AndCondition) || c.GetType() == typeof(OrCondition))
            {
                BinaryCondition        bc  = c as BinaryCondition;
                BinaryConditionControl ctl = (c.GetType() == typeof(AndCondition) ? (BinaryConditionControl) new AndControl() : (BinaryConditionControl) new OrControl());
                ctl.Condition = c;
                Controls.Add(ctl);
                control = ctl;

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition2 as ICondition, ctl));

                ctl.SubconditionControls.Add(GetControlForCondition(bc.Condition1 as ICondition, ctl));
            }

            control.ParentConditionControl = parent;

            //if (parent != null)
            //    parent.SubconditionControls.Add(control);

            control.DeleteCondition += new EventHandler <DeleteConditionEventArgs>(DeleteCondition);

            return(control);
        }