XML exporter erweitert

This commit is contained in:
2023-04-28 15:33:22 +02:00
parent ef2c9bfe6b
commit b22b9855fa
5 changed files with 103 additions and 28 deletions

View File

@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WWTech_KanalSchnittstelle.Exporter.Kandis;
using WWTech_KanalSchnittstelle.Exporter.XML;
namespace WWTech_KanalSchnittstelle.Exporter
{
@@ -18,6 +19,7 @@ namespace WWTech_KanalSchnittstelle.Exporter
switch(exportType)
{
case EExportType.KANDIS6: return new KANDIS60();
case EExportType.XML2006: return new XML2006();
default: throw new NotImplementedException();
}
}

View File

@@ -27,7 +27,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
xmlElement2.InnerText = "2-3";
xmlElement2.InnerText = "2006-2";
DoAdmindata(xmlElement);
DoCollectives(xmlElement);
@@ -58,9 +58,15 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
private void DoCollectives2Base(XmlElement dataCollectiveElement)
{
XmlElement parentElement = DoRow(dataCollectiveElement, "Stammdatenkollektiv");
foreach(Schacht schacht in _schaechte)
foreach (Kanal haltung in _haltungen)
{
XmlElement xmlElement = DoSchachtRow(schacht,parentElement, "AbwassertechnischeAnlage");
XmlElement xmlElement = DoHaltungRow(haltung, parentElement, "AbwassertechnischeAnlage");
}
foreach (Schacht schacht in _schaechte)
{
XmlElement xmlElement = DoSchachtRow(schacht, parentElement, "AbwassertechnischeAnlage");
}
}
@@ -83,14 +89,14 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieElement);
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString());
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString());
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString());
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
PunktElement = CreateElementFor("Punkt", KnotenElement);
DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString());
DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString());
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString());
DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString().Replace(',', '.'));
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
return xmlElement;
}
@@ -101,6 +107,48 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
xmlElement = _file.CreateElement(orginalTableName);
parentElement.AppendChild(xmlElement);
DoRowValue(xmlElement, "Objektbezeichnung", haltung.Objektbezeichnung);
DoRowValue(xmlElement, "Objektart", "1");
DoRowValue(xmlElement, "Entwaesserungsart", haltung.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : haltung.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
XmlElement xmlElement1 = CreateElementFor("Kante", xmlElement);
DoRowValue(xmlElement1, "KantenTyp", "0");
DoRowValue(xmlElement1, "KnotenZulauf", haltung.StartSchacht.Objektbezeichnung);
DoRowValue(xmlElement1, "KnotenZulaufTyp", "0");
DoRowValue(xmlElement1, "KnotenAblauf", haltung.EndSchacht.Objektbezeichnung);
DoRowValue(xmlElement1, "KnotenAblaufTyp", "0");
DoRowValue(xmlElement1, "Material", haltung.Material);
XmlElement xmlElement2 = CreateElementFor("Profil", xmlElement1);
DoRowValue(xmlElement2, "SonderprofilVorhanden", "0");
DoRowValue(xmlElement2, "Profilart", "0");
DoRowValue(xmlElement2, "Profilbreite", haltung.DN.ToString());
DoRowValue(xmlElement2, "Profilhoehe", haltung.DN.ToString());
xmlElement2 = CreateElementFor("Haltung", xmlElement1);
DoRowValue(xmlElement2, "HaltungsFunktion", "1");
DoRowValue(xmlElement2, "DMPLaenge", haltung.Haltungslaenge.ToString().Replace(',', '.'));
xmlElement1 = CreateElementFor("Lage", xmlElement);
xmlElement1 = CreateElementFor("Geometrie", xmlElement);
DoRowValue(xmlElement1, "GeoObjekttyp", "L");
xmlElement2 = CreateElementFor("Geometriedaten", xmlElement1);
XmlElement xmlElement3 = CreateElementFor("Kanten", xmlElement2);
XmlElement xmlElement4 = CreateElementFor("Kante", xmlElement3);
XmlElement xmlElement5 = CreateElementFor("Start", xmlElement4);
DoRowValue(xmlElement5, "Rechtswert", haltung.StartSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "Hochwert", haltung.StartSchacht.SohlHochWert.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "Punkthoehe", haltung.StartSchacht.SohlHoehe.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
xmlElement5 = CreateElementFor("Ende", xmlElement4);
DoRowValue(xmlElement5, "Rechtswert", haltung.EndSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "Hochwert", haltung.EndSchacht.SohlHochWert.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "Punkthoehe", haltung.EndSchacht.SohlHoehe.ToString().Replace(',', '.'));
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
return xmlElement;
@@ -133,7 +181,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
private XmlElement DoRowValue(XmlElement rowElement, string originColName, string value)
{
XmlElement xmlElement = CreateElementFor(originColName, rowElement);
if(value != "")
if (value != "")
{
xmlElement.InnerText = value;
}