Example Parameters

Parameters Example: URI, Static, Dynamic, and Inheritance

Consider the following Plan layout:

Hierarchical-node plan, with Inheritance to child Action node in Config & Parms

Name: plan0
Description: planDesc
IsActive: true
Actions:
- Name: action0
  Handler:
    Type: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
    Config:
      Name: ConfigSet00
      Type: Yaml
      Uri: file://C:/Synapse.UnitTests/Plans/Config/yaml_in.yaml
      Values:
        CNode0: CValue0_inline
        CNode1: CValue1_inline
        CNode3:
          CNode3_1: CValue3_1_inline
          CNode3_2: CValue3_2_inline
      Dynamic:
      - Source: cnode0Dynamic
        Target: CNode0
      - Source: cnode2_1Dynamic
        Target: CNode2:CNode2_1
      - Source: cnode3_1Dynamic
        Target: CNode3:CNode3_1
  Parameters:
    Name: ParamSet00
    Type: Yaml
    Uri: file://C:/Synapse.UnitTests/Plans/Parms/yaml_in.yaml
    Values:
      PNode0: PValue0_inline
      PNode1: PValue1_inline
      PNode3:
        PNode3_1: PValue3_1_inline
        PNode3_2: PValue3_2_inline
    Dynamic:
    - Source: pnode0Dynamic
      Target: PNode0
    - Source: pnode2_1Dynamic
      Target: PNode2:PNode2_1
    - Source: pnode3_1Dynamic
      Target: PNode3:PNode3_1
  Actions:
  - Name: action1
    Handler:
      Type: Synapse.Core:Synapse.Core.Runtime.EmptyHandler
      Config:
        Name: ConfigSet01
        InheritFrom: ConfigSet00
        Type: Yaml
        Values:
          CNode0: CValue0_inline_1
          CNode3:
            CNode3_1: CValue3_1_inline_1
    Parameters:
      Name: ParamSet01
      InheritFrom: ParamSet00
      Type: Yaml
      Values:
        PNode1: PValue1_inline_1
        PNode3:
          PNode3_2: PValue3_2_inline_1

Where: Config/yaml_in.yaml and Parms/yaml_in.yaml contain:

Config:
CNode0: CValue0_file
CNode1: CValue1_file
CNode2:
  CNode2_1: CValue2_1_file
  CNode2_2: CValue2_2_file
Parms:
PNode0: PValue0_file
PNode1: PValue1_file
PNode2:
  PNode2_1: PValue2_1_file
  PNode2_2: PValue2_2_file

action0 Parameter Results

The resulting Config/Parms for action0, before any Dynamic data is applied, is:

Config:
CNode0: CValue0_inline
CNode1: CValue1_inline
CNode2:
  CNode2_1: CValue2_1_file
  CNode2_2: CValue2_2_file
CNode3:
  CNode3_1: CValue3_1_inline
  CNode3_2: CValue3_2_inline
Parms:
PNode0: PValue0_inline
PNode1: PValue1_inline
PNode2:
  PNode2_1: PValue2_1_file
  PNode2_2: PValue2_2_file
PNode3:
  PNode3_1: PValue3_1_inline
  PNode3_2: PValue3_2_inline

The resulting Config/Parms for action0, after Dynamic data is applied, is:

//Key/Value pairs, as collected from an external source:
Dictionary<string, string> dynamicData = new Dictionary<string, string>();
dynamicData.Add( "cnode0Dynamic", "CValue0_dynamic" );
dynamicData.Add( "cnode2_1Dynamic", "CValue2_1_dynamic" );
dynamicData.Add( "cnode3_1Dynamic", "CValue3_1_dynamic" );
dynamicData.Add( "pnode0Dynamic", "PValue0_dynamic" );
dynamicData.Add( "pnode2_1Dynamic", "PValue2_1_dynamic" );
dynamicData.Add( "pnode3_1Dynamic", "PValue3_1_dynamic" );
Config:
CNode0: CValue0_dynamic
CNode1: CValue1_inline
CNode2:
  CNode2_1: CValue2_1_dynamic
  CNode2_2: CValue2_2_file
CNode3:
  CNode3_1: CValue3_1_dynamic
  CNode3_2: CValue3_2_inline
Parms:
PNode0: PValue0_dynamic
PNode1: PValue1_inline
PNode2:
  PNode2_1: PValue2_1_dynamic
  PNode2_2: PValue2_2_file
PNode3:
  PNode3_1: PValue3_1_dynamic
  PNode3_2: PValue3_2_inline

action1 Parameter Results

The resulting Config/Parms for action1, which inherits from its config/parms from action0, is:

Config:
CNode0: CValue0_inline_1
CNode1: CValue1_inline
CNode2:
  CNode2_1: CValue2_1_file
  CNode2_2: CValue2_2_file
CNode3:
  CNode3_1: CValue3_1_inline_1
  CNode3_2: CValue3_2_inline
Parms:
PNode0: PValue0_inline
PNode1: PValue1_inline_1
PNode2:
  PNode2_1: PValue2_1_file
  PNode2_2: PValue2_2_file
PNode3:
  PNode3_1: PValue3_1_inline
  PNode3_2: PValue3_2_inline_1