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()); }
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); }
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); }