private BlockPort AddMultiConduitPort(LineBlock lineBlock, BlockSideEnum side, List <ConduitClosureTerminalInfo> terminals, string outerConduitColor, double spaceBetweenTerminals = -1, double terminalSize = -1, double portMargin = -1)
        {
            BlockPort port = new BlockPort(side, "MultiConduit" + outerConduitColor, null, spaceBetweenTerminals, terminalSize, portMargin);

            foreach (var terminal in terminals)
            {
                if (terminal.LineSegment is ConduitSegmentInfo)
                {
                    ConduitSegmentInfo conduitSegment = terminal.LineSegment as ConduitSegmentInfo;
                    bool visible = false;

                    if (terminal.ConnectionKind == ConduitClosureInternalConnectionKindEnum.NotConnected)
                    {
                        visible = true;
                    }

                    var blockTerminal = new BlockPortTerminal(visible, "InnerConduit" + conduitSegment.Conduit.Color.ToString());
                    blockTerminal.SetReference(conduitSegment.Id, "InnerConduitSegment");
                    port.AddTerminal(blockTerminal);
                }
            }

            lineBlock.AddPort(port);

            return(port);
        }
        private BlockPort AddBigConduitPort(LineBlock lineBlock, BlockSideEnum side, int nTerminals, string outerConduitColor = null, double spaceBetweenTerminals = -1, double terminalSize = -1, double portMargin = -1)
        {
            BlockPort port = new BlockPort(side, outerConduitColor != null ? "BigConduit" + outerConduitColor : null, null, spaceBetweenTerminals, terminalSize, portMargin);

            for (int i = 0; i < nTerminals; i++)
            {
                port.AddTerminal(new BlockPortTerminal(false));
            }

            lineBlock.AddPort(port);

            return(port);
        }
        private BlockPort AddMultiConduitPort(LineBlock lineBlock, BlockSideEnum side, int nTerminals, string outerConduitColor, double spaceBetweenTerminals = -1, double terminalSize = -1, double portMargin = -1)
        {
            BlockPort port = new BlockPort(side, "MultiConduit" + outerConduitColor, null, spaceBetweenTerminals, terminalSize, portMargin);

            for (int i = 0; i < nTerminals; i++)
            {
                port.AddTerminal(new BlockPortTerminal(true, "InnerConduit" + MockupHelper.GetColorStringFromConduitNumber(i + 1)));
            }

            lineBlock.AddPort(port);

            return(port);
        }