protected override void AddConfiguration(List <NameValueItem> lNameValueItems, IEnvironment eEnviornment)
        {
            if (thHandler.GatewayAddress != null)
            {
                lNameValueItems.AddRange(ConvertToNameValueItems("gateway", thHandler.GatewayAddress));
            }
            if (thHandler.DNSAddress != null)
            {
                lNameValueItems.AddRange(ConvertToNameValueItems("dns", thHandler.DNSAddress));
            }
            lNameValueItems.AddRange(ConvertToNameValueItems("inPort", thHandler.DHCPInPort));
            lNameValueItems.AddRange(ConvertToNameValueItems("outPort", thHandler.DHCPOutPort));
            lNameValueItems.AddRange(ConvertToNameValueItems("leaseDuration", thHandler.LeaseDuration));

            foreach (DHCPPool dhPool in thHandler.DHCPPools)
            {
                NameValueItem nviPool = new NameValueItem("DHCPPool", "");
                foreach (DHCPPoolItem dhItem in dhPool.Pool)
                {
                    NameValueItem nvi = new NameValueItem("DHCPItem", "");
                    nvi.AddChildRange(ConvertToNameValueItems("Address", dhItem.Address));
                    nvi.AddChildRange(ConvertToNameValueItems("Gateway", dhItem.Gateway));
                    nvi.AddChildRange(ConvertToNameValueItems("DNSServer", dhItem.DNSServer));
                    nvi.AddChildRange(ConvertToNameValueItems("Netmask", dhItem.Netmask));
                    nviPool.AddChildItem(nvi);
                }
                lNameValueItems.Add(nviPool);
            }
        }
        private NameValueItem SaveRule(IEnvironment eEnviornment, TrafficSplitterRule trRule)
        {
            NameValueItem nviRule = null;
            ISubPlugInDefinition <TrafficSplitterRule> ruleDefinition = GetRuleDefinitionForName(eEnviornment, trRule.Name);

            if (ruleDefinition != null)
            {
                nviRule = new NameValueItem("rule", "");
                nviRule.AddChildItem(new NameValueItem("ruleKey", ruleDefinition.PluginKey));
                nviRule.AddChildRange(ruleDefinition.GetConfiguration(trRule));
                foreach (TrafficSplitterRule tsrChild in trRule.ChildRules)
                {
                    NameValueItem nvi = SaveRule(eEnviornment, tsrChild);
                    if (nvi != null)
                    {
                        nviRule.AddChildItem(nvi);
                    }
                }
            }
            return(nviRule);
        }
        private NameValueItem SaveCondition(IEnvironment eEnviornment, HTTPStreamModifierCondition cCondition)
        {
            NameValueItem nviRule = null;
            ISubPlugInDefinition <HTTPStreamModifierCondition> ispConditionDefinition = null;

            ispConditionDefinition = GetConditionefinitionForName(eEnviornment, cCondition.Name);

            if (ispConditionDefinition != null)
            {
                nviRule = new NameValueItem("condition", "");
                nviRule.AddChildItem(new NameValueItem("conditionKey", ispConditionDefinition.PluginKey));
                nviRule.AddChildRange(ispConditionDefinition.GetConfiguration(cCondition));
                foreach (HTTPStreamModifierCondition cChild in cCondition.ChildRules)
                {
                    NameValueItem nvi = SaveCondition(eEnviornment, cChild);
                    if (nvi != null)
                    {
                        nviRule.AddChildItem(nvi);
                    }
                }
            }
            return(nviRule);
        }