/// <summary>
        /// Wrapper to change DiagramLink style
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="type"></param>
        /// <param name="style"></param>
        /// <param name="property"></param>
        /// <param name="changeScope"></param>
        public static void DiagramLinkStyleWrapper(Repository rep, string type, string style, string property, ChangeScope changeScope)
        {
            EaDiagram eaDia = new EaDiagram(rep, getAllDiagramObject: false);

            // Handle selected diagram and its selected items (connector/objects)
            if (eaDia.Dia != null)
            {
                rep.SaveDiagram(eaDia.Dia.DiagramID);
                // over all links
                foreach (var link in eaDia.GetSelectedLinks())
                {
                    var linkStyle = new DiagramLinkStyle(rep, link, type, style, property);
                    if (linkStyle.IsToProcess())
                    {
                        linkStyle.UpdateStyles();
                        linkStyle.SetProperties();
                        linkStyle.SetEaLayoutStyles();
                    }
                }
                eaDia.ReloadSelectedObjectsAndConnector(saveDiagram: false);
            }
            else
            {
                var liParameter = new string[4];
                liParameter[0] = type;
                liParameter[1] = style;
                liParameter[2] = property;

                switch (rep.GetContextItemType())
                {
                case EA.ObjectType.otPackage:
                    EA.Package pkg = (EA.Package)rep.GetContextObject();
                    RecursivePackages.DoRecursivePkg(rep, pkg, null, null,
                                                     SetDiagramLinkStyle,
                                                     liParameter,
                                                     changeScope);
                    break;

                case EA.ObjectType.otElement:
                    EA.Element el = (EA.Element)rep.GetContextObject();
                    RecursivePackages.DoRecursiveEl(rep, el, null,
                                                    SetDiagramLinkStyle,
                                                    liParameter,
                                                    changeScope);
                    break;
                }
            }
        }
        /// <summary>
        /// Update all DiagramLinks of diagram
        /// - liParameter[0] = type;
        /// - liParameter[1] = style;</summary>
        /// - liParameter[2] = property;
        /// <param name="rep"></param>
        /// <param name="dia"></param>
        /// <param name="liParameter"></param>
        private static void SetDiagramLinkStyle(EA.Repository rep, EA.Diagram dia, string[] liParameter)
        {
            rep.SaveDiagram(dia.DiagramID);

            string types      = liParameter[0];
            string styles     = liParameter[1];
            string properties = liParameter[2];

            foreach (EA.DiagramLink link in dia.DiagramLinks)
            {
                var linkStyle = new DiagramLinkStyle(rep, link, types, styles, properties);
                if (linkStyle.IsToProcess())
                {
                    linkStyle.UpdateStyles();
                    linkStyle.SetProperties();
                    linkStyle.SetEaLayoutStyles();
                }
            }
            rep.ReloadDiagram(dia.DiagramID);
        }