private void AddPhoenixKlemme(List <Terminal> terminals, ref int lineNo, ReihenklemmeInfo klemme) { var terminal = new Terminal { LineNumber = lineNo++, ArticleNumber = klemme.ArticleNo, ArticleName = klemme.ArticleName }; terminals.Add(terminal); }
private bool TryWriteEndBracketToCsv(CsvWriter csv, ref int lineNo, ReihenklemmeInfo reihenklemmeInfo) { if (string.IsNullOrEmpty(reihenklemmeInfo.ArticleNo)) { return(false); } csv.WriteRecord( new EndBracket { LineNumber = lineNo++, ArticleNumber = reihenklemmeInfo.ArticleNo, ArticleName = reihenklemmeInfo.ArticleName, }); csv.NextRecord(); return(true); }
private void CreateExportData(CsvWriter csv, PlanData data, TrageschieneKonfiguration tragschienenKonfiguration, ref int lineNo) { var outNodes = data.treeNodeDatas.Values.OfType <TreeNodeDataOut>().ToList(); var nodesToExport = 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) .ToList(); if (!nodesToExport.Any()) { return; } WriteTrageschieneToCsv(csv, ref lineNo, data, tragschienenKonfiguration); WriteFreeSpacingToCsv(csv, ref lineNo); string letzteKlemmleiste = string.Empty; ReihenklemmeInfo klemmeKlemmleistenEnde = null; // Klemme die am Ende einer Klemmleiste hinzugefügt werden muss string klemmeMarking = string.Empty; int position = 1; var terminals = new List <Terminal>(); foreach (var nodeData in nodesToExport) { if (letzteKlemmleiste != nodeData.klemmleiste) { WriteKlemmleisteToCsv(csv, ref lineNo, terminals, klemmeKlemmleistenEnde); terminals = new List <Terminal>(); // für 230V Klemmleisten werden Einspeiseklemme und Sammelschienenträger hinzugefügt if (nodeData.Type == "out") { // Einspeiseklemme sofort hinzufügen AddPhoenixKlemme(terminals, ref lineNo, CreateKlemmeFromConfig(_reihenklemmenCfg["PhoenixEinspeiseklemme"])); // _reihenklemmenCfg["Einspeiseklemme"]); // Sammelschienenträger merken wir uns bis zum Ende der Klemmleiste klemmeKlemmleistenEnde = CreateKlemmeFromConfig(_reihenklemmenCfg["PhoenixSammelschienenträger"]); //reihenklemmenCfg["Sammelschienenträ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]; AddPhoenixKlemme(terminals, ref lineNo, currentKlemme); klemmeMarking = string.Empty; } } WriteKlemmleisteToCsv(csv, ref lineNo, terminals, klemmeKlemmleistenEnde); }
private void WriteKlemmleisteToCsv(CsvWriter csv, ref int lineNo, List <Terminal> terminals, ReihenklemmeInfo klemmeKlemmleistenEnde) { if (!terminals.Any()) { return; } if (lineNo > 1) { WriteFreeSpacingToCsv(csv, ref lineNo); } if (klemmeKlemmleistenEnde != null) { AddPhoenixKlemme(terminals, ref lineNo, klemmeKlemmleistenEnde); } // Clipfix zum Start TryWriteEndBracketToCsv(csv, ref lineNo, CreateKlemmeFromConfig(_reihenklemmenCfg["PhoenixKlemmenleisteStart"])); csv.WriteRecords(terminals); // Clipfix zum Ende TryWriteEndBracketToCsv(csv, ref lineNo, CreateKlemmeFromConfig(_reihenklemmenCfg["PhoenixKlemmenleisteEnde"])); }