Example #1
0
 protected override void ParseConfiguration(Dictionary <string, NameValueItem[]> strNameValues, IEnvironment eEnviornment)
 {
     if (strNameValues.ContainsKey("rule"))
     {
         foreach (NameValueItem nviRuleItem in strNameValues["rule"])
         {
             TrafficSplitterRule tsrRule = LoadRule(nviRuleItem, eEnviornment);
             if (tsrRule != null)
             {
                 thHandler.AddRule(tsrRule);
             }
         }
     }
 }
        public override NameValueItem[] GetConfiguration(TrafficSplitterRule tsrRule)
        {
            PortRule prRule = (PortRule)tsrRule;

            List <NameValueItem> lNvi = new List <NameValueItem>();

            lNvi.Add(ConvertActionToNameValueItem(prRule.Action));

            lNvi.Add(new NameValueItem("port", prRule.Port.ToString()));
            lNvi.Add(new NameValueItem("destinationPort", prRule.DestinationPort.ToString()));
            lNvi.Add(new NameValueItem("sourcePort", prRule.SourcePort.ToString()));
            lNvi.Add(new NameValueItem("protocol", prRule.Protocol.ToString()));

            return(lNvi.ToArray());
        }
Example #3
0
        private TrafficSplitterRule LoadRule(NameValueItem nviItem, IEnvironment eEnviornment)
        {
            string strKey = nviItem["ruleKey"][0].Value;
            ISubPlugInDefinition <TrafficSplitterRule> ruleDefinition = (ISubPlugInDefinition <TrafficSplitterRule>)eEnviornment.GetPlugInByKey(strKey);

            if (ruleDefinition != null)
            {
                TrafficSplitterRule tsrRule = ruleDefinition.Create(nviItem);
                foreach (NameValueItem nviChild in nviItem["rule"])
                {
                    tsrRule.AddChildRule(LoadRule(nviChild, eEnviornment));
                }
                return(tsrRule);
            }

            return(null);
        }
Example #4
0
        public override NameValueItem[] GetConfiguration(TrafficSplitterRule tsrRule)
        {
            IPAddressRule ipaRule = (IPAddressRule)tsrRule;

            List <NameValueItem> lNvi = new List <NameValueItem>();

            lNvi.Add(ConvertActionToNameValueItem(ipaRule.Action));

            if (ipaRule.Address != null)
            {
                lNvi.Add(new NameValueItem("address", ipaRule.Address.ToString()));
            }

            if (ipaRule.Wildcard != null)
            {
                lNvi.Add(new NameValueItem("wildcard", ipaRule.Wildcard.ToString()));
            }

            if (ipaRule.Destination != null)
            {
                lNvi.Add(new NameValueItem("destinationAddress", ipaRule.Destination.ToString()));
            }

            if (ipaRule.Source != null)
            {
                lNvi.Add(new NameValueItem("sourceAddress", ipaRule.Source.ToString()));
            }

            if (ipaRule.DestinationWildcard != null)
            {
                lNvi.Add(new NameValueItem("destinationWildcard", ipaRule.DestinationWildcard.ToString()));
            }

            if (ipaRule.SourceWildcard != null)
            {
                lNvi.Add(new NameValueItem("sourceWildcard", ipaRule.SourceWildcard.ToString()));
            }


            return(lNvi.ToArray());
        }
        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);
        }