Exemplo n.º 1
0
        private void AddWagoKlemme(Project xmlProject, ref int position, string articleNo, string marking = null)
        {
            var article = new Article {
                ArticleNo = articleNo, Position = position++
            };

            if (!string.IsNullOrEmpty(marking))
            {
                article.Marking = new Marking();
                article.Marking.Lines.Add(marking);
            }

            xmlProject.Carrier.ProjectArticles.Add(article);
        }
Exemplo n.º 2
0
        private void WriteWagoXmlFile(PlanData data, string xmlFileName, TrageschieneKonfiguration tragschienenKonfiguration)
        {
            // jedes Listenelement entspricht einer


            var xmlProject = new Project {
                Name = data.documentData.projectAddress.Replace("\n", "- ")
            };

            // Tragschiene
            xmlProject.Carrier = new Carrier {
                ArticleNo = "210-112", Name = data.documentData.projectName
            };


            var outNodes = data.treeNodeDatas.Values.OfType <TreeNodeDataOut>().ToList();

            string letzteKlemmleiste      = string.Empty;
            string klemmeKlemmleistenEnde = string.Empty; // Klemme die am Ende einer Klemmleiste hinzugefügt werden muss
            string klemmeMarking          = string.Empty;
            int    position = 1;

            foreach (var nodeData in outNodes
                     .Where(x => tragschienenKonfiguration.Klemmleisten.Contains(x.klemmleiste)) // nur die angegebenen Klemmleisten exportieren
                                                                                                 //.OrderBy( x => tragschienenKonfiguration.IndexOf(x.klemmleiste))       // die Reihenfolge wird durch die Konfiguration definiert.
                     .OrderBy(x => x.KlemmleisteNummer)
                     .ThenBy(x => x.klemmenBlockNummer))
            {
                if (letzteKlemmleiste != nodeData.klemmleiste)
                {
                    if (!string.IsNullOrEmpty(klemmeKlemmleistenEnde))
                    {
                        AddWagoKlemme(xmlProject, ref position, klemmeKlemmleistenEnde);
                        klemmeKlemmleistenEnde = string.Empty;
                    }

                    // für 230V Klemmleisten werden Einspeiseklemme und Sammelschienenträger hinzugefügt
                    if (nodeData.Type == "out")
                    {
                        // Einspeiseklemme sofort hinzufügen
                        AddWagoKlemme(xmlProject, ref position, _reihenklemmenCfg["WagoEinspeiseklemme"], nodeData.klemmleiste);

                        // Sammelschienenträger merken wir uns bis zum Ende der Klemmleiste
                        klemmeKlemmleistenEnde = _reihenklemmenCfg["WagoSammelschienenträger"];
                    }
                    else
                    {
                        // ansonsten beschriften wir die erste Klemme mit dem Namend er Klemmleiste
                        klemmeMarking = nodeData.klemmleiste;
                    }
                }
                letzteKlemmleiste = nodeData.klemmleiste;


                int currentKlemmeNrInLeiste = 0;
                var reihenklemmen           = _reihenklemmenCreator.CreateReihenklemmen(nodeData, ref currentKlemmeNrInLeiste);

                if (!reihenklemmen.Any())
                {
                    continue;
                }

                for (int idx = 0; idx < reihenklemmen.Count; idx++)
                {
                    var currentKlemme = reihenklemmen[idx];

                    AddWagoKlemme(xmlProject, ref position, currentKlemme.ArticleNo, klemmeMarking);
                    klemmeMarking = string.Empty;
                }
            }

            // evtl. fehlt noch der Sammelschienenträger
            if (!string.IsNullOrEmpty(klemmeKlemmleistenEnde))
            {
                AddWagoKlemme(xmlProject, ref position, klemmeKlemmleistenEnde);
            }

            var wagoXmlCae = new WagoXmlCae {
                Project = xmlProject
            };

            SaveWagoXmlFile(wagoXmlCae, xmlFileName);
        }