protected override void ParseConfiguration(Dictionary <string, NameValueItem[]> strNameValues, IEnvironment eEnviornment)
 {
     if (strNameValues.ContainsKey("action"))
     {
         foreach (NameValueItem nviActionItem in strNameValues["action"])
         {
             HTTPStreamModifierAction htAction = LoadAction(nviActionItem, eEnviornment);
             if (htAction != null)
             {
                 thHandler.AddAction(htAction);
             }
         }
     }
 }
        private HTTPStreamModifierAction LoadAction(NameValueItem nviActionItem, IEnvironment eEnviornment)
        {
            string strKey = nviActionItem["actionKey"][0].Value;
            ISubPlugInDefinition <HTTPStreamModifierAction> actionDefinition = (ISubPlugInDefinition <HTTPStreamModifierAction>)eEnviornment.GetPlugInByKey(strKey);

            if (actionDefinition != null)
            {
                HTTPStreamModifierAction htAction = actionDefinition.Create(nviActionItem);
                foreach (NameValueItem nviChild in nviActionItem["condition"])
                {
                    htAction.AddChildRule(LoadCondition(nviChild, eEnviornment));
                }
                return(htAction);
            }

            return(null);
        }
        private NameValueItem SaveAction(IEnvironment eEnviornment, HTTPStreamModifierAction trAction)
        {
            NameValueItem nviRule = null;
            ISubPlugInDefinition <HTTPStreamModifierAction> ispActionDefinition = null;

            ispActionDefinition = GetActionDefinitionForName(eEnviornment, trAction.Name);

            if (ispActionDefinition != null)
            {
                nviRule = new NameValueItem("action", "");
                nviRule.AddChildItem(new NameValueItem("actionKey", ispActionDefinition.PluginKey));
                nviRule.AddChildRange(ispActionDefinition.GetConfiguration(trAction));
                foreach (HTTPStreamModifierCondition cChild in trAction.ChildRules)
                {
                    NameValueItem nvi = SaveCondition(eEnviornment, cChild);
                    if (nvi != null)
                    {
                        nviRule.AddChildItem(nvi);
                    }
                }
            }
            return(nviRule);
        }
 /// <summary>
 /// Checks whether a given action is contained by this modifier.
 /// </summary>
 /// <param name="aAction">The action to check for.</param>
 /// <returns>A bool indicating whether a given action is contained by this modifier.</returns>
 public bool ContainsAction(HTTPStreamModifierAction aAction)
 {
     return(lActions.Contains(aAction));
 }
 /// <summary>
 /// Removes the given action.
 /// </summary>
 /// <param name="aAction">The action to remove</param>
 public void RemoveAction(HTTPStreamModifierAction aAction)
 {
     lActions.Remove(aAction);
     InvokeExternalAsync(ActionRemoved, new HTTPStreamModifierActionEventArgs(aAction));
 }
 /// <summary>
 /// Adds an action to this modifier.
 /// </summary>
 /// <param name="aAction"></param>
 public void AddAction(HTTPStreamModifierAction aAction)
 {
     lActions.Add(aAction);
     InvokeExternalAsync(ActionAdded, new HTTPStreamModifierActionEventArgs(aAction));
 }
 public HTTPStreamModifierActionEventArgs(HTTPStreamModifierAction htAction)
 {
     Action = htAction;
 }