Ejemplo n.º 1
0
        private void LoadTables(PdmDiagram diagram, XmlNode symbolRootNode)
        {
            if (symbolRootNode == null)
            {
                return;
            }

            var url           = GetTableReferencePath(diagram);
            var tableRootNode = doc.SelectSingleNode(url, nms);

            foreach (XmlNode child in symbolRootNode.SelectNodes("o:TableSymbol", nms))
            {
                if (child.SelectSingleNode("c:ClonePredecessor", nms) != null)
                {
                    continue;
                }

                var refNode = child.SelectSingleNode("c:Object/o:Table", nms);
                if (refNode != null)
                {
                    var id = refNode.Attributes["Ref"].InnerText;
                    if (existsCodes.Contains(id))
                    {
                        continue;
                    }

                    existsCodes.Add(id);

                    var tNode = tableRootNode.SelectSingleNode("o:Table[@Id='" + id + "']", nms);

                    if (tNode != null)
                    {
                        var nameNode = tNode.SelectSingleNode("a:Name", nms);
                        var codeNode = tNode.SelectSingleNode("a:Code", nms);
                        var descNode = tNode.SelectSingleNode("a:Comment", nms);

                        var table = new PdmTable();
                        table.Id   = id;
                        table.Name = codeNode.InnerText;

                        if (descNode != null && !string.IsNullOrEmpty(descNode.InnerText) &&
                            nameNode.InnerText != descNode.InnerText)
                        {
                            table.Description = descNode.InnerText;
                        }
                        else
                        {
                            table.Description = nameNode.InnerText;
                        }

                        table.Uri = string.Format("{0}/o:Table[@Id='{1}']", url, id);
                        diagram.Tables.Add(table);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private string GetTableReferencePath(PdmDiagram diagram)
        {
            var sb     = new StringBuilder();
            var parent = diagram.Parent;

            while (parent != null)
            {
                sb.Insert(0, "/c:Packages/o:Package[@Id='" + parent.Id + "']");
                parent = parent.Parent;
            }

            return(string.Format("//Model/o:RootObject/c:Children/o:Model{0}/c:Tables", sb));
        }
Ejemplo n.º 3
0
        private void LoadDiagrams(List <PdmDiagram> diagrams, XmlNode diagramRootNode, PdmPackage parent)
        {
            if (diagramRootNode == null)
            {
                return;
            }

            foreach (XmlNode child in diagramRootNode.SelectNodes("o:PhysicalDiagram", nms))
            {
                var nameNode       = child.SelectSingleNode("a:Name", nms);
                var id             = child.Attributes["Id"].InnerText;
                var symbolRootNode = child.SelectSingleNode("c:Symbols", nms);

                var diagram = new PdmDiagram();
                diagram.Id     = child.Attributes["Id"].InnerText;
                diagram.Name   = nameNode.InnerText;
                diagram.Parent = parent;
                LoadTables(diagram, symbolRootNode);
                diagrams.Add(diagram);
            }
        }