Пример #1
0
 public Block(Node node)
 {
     NextBlocks = new Dictionary<string, Block>();
     Name = node.Name;
     GlobalGUID = node.GlobalGUID;
     InstanceGUID = node.InstanceGUID;
     switch (node.GetType().Name)
     {
         case "ServiceNode":
             BlockType = BlockTypes.Service;
             DestURI = ServiceManager.ServiceList[node.GlobalGUID].ServiceConfig["Server_URI"];
             break;
         case "ConditionNode":
             BlockType = BlockTypes.Condition;
             ConditionType = ServiceManager.ConditionList[node.GlobalGUID].Type;
             break;
         case "ConditionValueNode":
             BlockType = BlockTypes.ConditionOption;
             break;
         case "SIPResponseNode":
             BlockType = BlockTypes.SIPResponse;
             break;
         default:
             Console.WriteLine("Unkown node type" + node.GetType().Name);
             break;
     }
     if (node.Name != "Start")
     {
         FillBlocks(node, this);
     }
 }
Пример #2
0
 //Pruned section of tree starting at node
 private void FillBlocks(Node node, Block block)
 {
     if (node == null) return;
     if (node.Children.Count > 0)
     {
         foreach (Node child in node.Children)
         {
             switch (node.GetType().Name)
             {
                 case "ServiceNode":
                 case "ConditionNode":
                     block.AddChild(child.Name, new Block(child));
                     break;
                 case "ConditionValueNode":
                 case "SIPResponseNode":
                     block.AddChild(child.InstanceGUID, new Block(child));
                     break;
                 default:
                     Console.WriteLine("Unkown node type" + child.GetType().Name);
                     break;
             }
             //FillBlocks(child, block);
         }
     }
 }