public ActionDefinition(
     DirectionalAction dirAction,
     PrimaryAction primaryAction,
     SecondaryAction secondAction
     )
 {
     this.DirectionalAction = dirAction;
     this.PrimaryAction = primaryAction;
     this.SecondaryAction = secondAction;
 }
 public ActionComponent(
     DirectionalAction direction, 
     SecondaryAction SecondaryAct, 
     PrimaryAction primaryAct, 
     Drift drifting = Drift.None)
 {
     this.curDirection = direction;
     this.secondaryAction = SecondaryAct;
     this.primaryAction = primaryAct;
     this.drift = drifting;
 }
 internal static void OverrideFlow(BindingParameterCollection parameters, string action, MessageDirection direction, TransactionFlowOption option)
 {
     Dictionary<DirectionalAction, TransactionFlowOption> dictionary = EnsureDictionary(parameters);
     DirectionalAction key = new DirectionalAction(direction, action);
     if (dictionary.ContainsKey(key))
     {
         dictionary[key] = option;
     }
     else
     {
         dictionary.Add(key, option);
     }
 }
        internal static void OverrideFlow(BindingParameterCollection parameters, string action, MessageDirection direction, TransactionFlowOption option)
        {
            Dictionary <DirectionalAction, TransactionFlowOption> dictionary = EnsureDictionary(parameters);
            DirectionalAction key = new DirectionalAction(direction, action);

            if (dictionary.ContainsKey(key))
            {
                dictionary[key] = option;
            }
            else
            {
                dictionary.Add(key, option);
            }
        }