コード例 #1
0
        public static Pad CreateInstance(PadContract contract, ExecutionMode mode, IInstance instance)
        {
            Pad pad = new Pad(mode);

            var nodes = new List <Nodes.NodeBase>();

            foreach (var nodecontract in contract.Nodes)
            {
                nodes.Add(NodeFactory.CreateNode(nodecontract, instance.GetMappings()));
            }
            pad.Nodes = nodes;

            // fill the in and out nodes

            foreach (var nodecontract in contract.Nodes)
            {
                Nodes.NodeBase node = (from o in nodes where o.Id == nodecontract.NodeId select o).FirstOrDefault();
                if (node != null)
                {
                    if (nodecontract.InNodes != null)
                    {
                        node.InPorts = (from o in nodes where nodecontract.InNodes.Contains(o.Id) select o)?.ToList <NodeBase>();
                    }
                    if (nodecontract.OutNodes != null)
                    {
                        node.OutPorts = (from o in nodes where nodecontract.OutNodes.Contains(o.Id) select o)?.ToList <NodeBase>();
                    }
                }
            }

            return(pad);
        }