public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_Shapes();

            // Instantiate Presentation class that represents the PPTX file
            using (Presentation input = new Presentation())
            {
                // Accessing shapes collection for selected slide
                IShapeCollection shapes = input.Slides[0].Shapes;

                // Add autoshape Ellipse
                IAutoShape ellipse = shapes.AddAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);

                // Add autoshape Rectangle
                IAutoShape rectangle = shapes.AddAutoShape(ShapeType.Rectangle, 100, 300, 100, 100);

                // Adding connector shape to slide shape collection
                IConnector connector = shapes.AddConnector(ShapeType.BentConnector2, 0, 0, 10, 10);

                // Joining Shapes to connectors
                connector.StartShapeConnectedTo = ellipse;
                connector.EndShapeConnectedTo   = rectangle;

                // Call reroute to set the automatic shortest path between shapes
                connector.Reroute();

                // Saving presenation
                input.Save(dataDir + "Connecting shapes using connectors_out.pptx", SaveFormat.Pptx);
            }
        }
        public static void Run()
        {
            //ExStart:ConnectShapeUsingConnectionSite
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_Shapes();

            // Instantiate Presentation class that represents the PPTX file
            using (Presentation presentation = new Presentation())
            {
                // Accessing shapes collection for selected slide
                IShapeCollection shapes = presentation.Slides[0].Shapes;

                // Adding connector shape to slide shape collection
                IConnector connector = shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);

                // Add autoshape Ellipse
                IAutoShape ellipse = shapes.AddAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);

                // Add autoshape Rectangle
                IAutoShape rectangle = shapes.AddAutoShape(ShapeType.Rectangle, 100, 200, 100, 100);

                // Joining Shapes to connectors
                connector.StartShapeConnectedTo = ellipse;
                connector.EndShapeConnectedTo   = rectangle;

                // Setting the desired connection site index of Ellipse shape for connector to get connected
                uint wantedIndex = 6;

                // Checking if desired index is less than maximum site index count
                if (ellipse.ConnectionSiteCount > wantedIndex)
                {
                    // Setting the desired connection site for connector on Ellipse
                    connector.StartShapeConnectionSiteIndex = wantedIndex;
                }

                // Save presentation
                presentation.Save(dataDir + "Connecting_Shape_on_desired_connection_site_out.pptx", SaveFormat.Pptx);
            }
            //ExEnd:ConnectShapeUsingConnectionSite
        }