Ejemplo n.º 1
0
 private void SaveWagoXmlFile(WagoXmlCae xml, string fileName)
 {
     try
     {
         var xmlDocument = new XmlDocument();
         var serializer  = new XmlSerializer(xml.GetType());
         using (var stream = new MemoryStream())
         {
             serializer.Serialize(stream, xml);
             stream.Position = 0;
             xmlDocument.Load(stream);
             xmlDocument.Save(fileName);
         }
     }
     catch (Exception ex)
     {
         //Log exception here
     }
 }
Ejemplo 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);
        }