Compare commits

...

6 Commits

Author SHA1 Message Date
Damian Wessels
fd13ba2695 Reparaturmaßnahmen und Renovationsmaßnahmen
Angefangen Interfaces zu Implementieren.
2024-08-26 16:48:39 +02:00
Damian Wessels
f8a01cdd8a Style änderung und Länge wird eingetragen
Die Kosten werden nun im Währungsformat herausgegeben
2024-08-26 13:02:30 +02:00
Damian Wessels
bacd1bd770 Knoten zu AbwassertechnischeAnlage geändert
Somit kann auf die Daten zugegriffen werden.
2024-08-26 13:01:45 +02:00
Damian Wessels
368fb464c3 in static funktionen umgeändert 2024-08-26 12:30:54 +02:00
Damian Wessels
3c8cd670b4 umgeschrieben auf static funktion 2024-08-26 12:23:32 +02:00
Damian Wessels
4071b526f0 Geometriedaten werden geladen 2024-08-26 12:13:09 +02:00
9 changed files with 137 additions and 47 deletions

View File

@@ -1,4 +1,6 @@
namespace Schnittstelle.Contract using Schnittstelle.Sanierung;
namespace Schnittstelle.Contract
{ {
interface ICodeBeschreibung interface ICodeBeschreibung
{ {

View File

@@ -1,18 +1,24 @@
using Schnittstelle.Import.XML.v2013.Model; using Schnittstelle.Import.XML.v2013.Model;
using Schnittstelle.Sanierung;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace Schnittstelle.DWA149_2_2013 namespace Schnittstelle.DWA149_2_2013
{ {
class BAA : CodeBeschreibung class BAA : CodeBeschreibung, IReparatur, IRenovation
{ {
List<SanierungMassnahme> reparatur = new List<SanierungMassnahme>();
List<SanierungMassnahme> renovation = new List<SanierungMassnahme>();
public BAA(RZustand kuerzel) : base("Verformung",kuerzel) public BAA(RZustand kuerzel) : base("Verformung",kuerzel)
{ {
CH1.Add("A", "vertikal"); CH1.Add("A", "vertikal");
CH1.Add("B", "horizontal"); CH1.Add("B", "horizontal");
} }
List<SanierungMassnahme> IReparatur.Massnahmen => reparatur;
List<SanierungMassnahme> IRenovation.Massnahmen => renovation;
} }
} }

View File

@@ -1,10 +1,14 @@
using Schnittstelle.Import.XML.v2013.Model; using Schnittstelle.Import.XML.v2013.Model;
using Schnittstelle.Sanierung;
using System; using System;
using System.Collections.Generic;
namespace Schnittstelle.DWA149_2_2013 namespace Schnittstelle.DWA149_2_2013
{ {
class BAB : CodeBeschreibung class BAB : CodeBeschreibung, IReparatur
{ {
List<SanierungMassnahme> reparatur = new List<SanierungMassnahme>();
public BAB(RZustand kuerzel) : base("Rissbildung", kuerzel) public BAB(RZustand kuerzel) : base("Rissbildung", kuerzel)
{ {
CH1.Add("A", "Oberflächenriss (Haarriss)"); CH1.Add("A", "Oberflächenriss (Haarriss)");
@@ -16,7 +20,13 @@ namespace Schnittstelle.DWA149_2_2013
CH2.Add("C", "komplexe Rissbildung"); CH2.Add("C", "komplexe Rissbildung");
CH2.Add("D", "gewundene oder spiralförmige Rissbildung"); CH2.Add("D", "gewundene oder spiralförmige Rissbildung");
CH2.Add("E", "sternförmige Rissbildung"); CH2.Add("E", "sternförmige Rissbildung");
reparatur.Add(new SanierungMassnahme("anfräsen",100));
reparatur.Add(new SanierungMassnahme("kurzliner",200));
} }
List<SanierungMassnahme> IReparatur.Massnahmen => reparatur;
} }
} }

View File

@@ -1,5 +1,6 @@
using Schnittstelle.Contract; using Schnittstelle.Contract;
using Schnittstelle.Import.XML.v2013.Model; using Schnittstelle.Import.XML.v2013.Model;
using Schnittstelle.Sanierung;
using System.Collections.Generic; using System.Collections.Generic;
namespace Schnittstelle.DWA149_2_2013 namespace Schnittstelle.DWA149_2_2013
@@ -33,6 +34,5 @@ namespace Schnittstelle.DWA149_2_2013
return string.Format("{0} {1} {2}", beschreibung, ch1,ch2); return string.Format("{0} {1} {2}", beschreibung, ch1,ch2);
} }
} }
} }
} }

View File

@@ -76,8 +76,8 @@ namespace Schnittstelle.Export
row++; row++;
worksheet.Range[row, 1].Text = haltung.Stammdaten.Objektbezeichnung; worksheet.Range[row, 1].Text = haltung.Stammdaten.Objektbezeichnung;
worksheet.Range[row, 2].Text = "TODO"; worksheet.Range[row, 2].Text = haltung.Stammdaten.Kante.Laenge.ToString(); // Länge
worksheet.Range[row, 3].Text = "TODO"; worksheet.Range[row, 3].Text = "Not Implemented yet"; // Tiefe
worksheet.Range[row, 5].Text = haltung.Inspektionsdaten.Lage.Strassename; worksheet.Range[row, 5].Text = haltung.Inspektionsdaten.Lage.Strassename;
worksheet.Range[row, 9].Text = haltung.Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite.ToString(); worksheet.Range[row, 9].Text = haltung.Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite.ToString();
@@ -103,13 +103,17 @@ namespace Schnittstelle.Export
worksheet.Range[row, 10].Text = "Kosten"; worksheet.Range[row, 10].Text = "Kosten";
worksheet.Range[row, 1, row,10].CellStyle=headerStyle; worksheet.Range[row, 1, row,10].CellStyle=headerStyle;
//08950738
row++; row++;
int temprow = row; int temprow = row;
int codestart_row = row; int codestart_row = row;
//int rows = 7; //int rows = 7;
decimal inspizierteLaenge = 0m; decimal inspizierteLaenge = 0m;
for (int j = 0; j < haltung.Inspektionsdaten.OptischeInspektion.Count; j++) //if(haltung.Stammdaten.Objektbezeichnung.Equals("08950738")) Debugger.Break();
int anzahlInspektionen = haltung.Inspektionsdaten.OptischeInspektion.Count-1;
for (int j = 0; j < anzahlInspektionen+1; j++)
{ {
OptischeInspektion opt = haltung.Inspektionsdaten.OptischeInspektion[j]; OptischeInspektion opt = haltung.Inspektionsdaten.OptischeInspektion[j];
inspizierteLaenge += opt.Rohrleitung.Zustaende.Max(x => x.Station); inspizierteLaenge += opt.Rohrleitung.Zustaende.Max(x => x.Station);
@@ -149,6 +153,7 @@ namespace Schnittstelle.Export
row++; row++;
} }
} }
row += anzahlInspektionen;
worksheet.Range[temprow, 1, row-1, 10].CellStyle = cellStyle; worksheet.Range[temprow, 1, row-1, 10].CellStyle = cellStyle;
worksheet.Range[row-1, 1, row-1, 10].CellStyle = kodierungEnde; worksheet.Range[row-1, 1, row-1, 10].CellStyle = kodierungEnde;
temprow = row; temprow = row;
@@ -197,6 +202,7 @@ namespace Schnittstelle.Export
row += 5; row += 5;
} }
worksheet.UsedRange.AutofitColumns(); worksheet.UsedRange.AutofitColumns();
worksheet.Range[string.Format("J1:J{0}",row)].NumberFormat = "€#,##0.00";
} }
} }
} }

View File

@@ -5,8 +5,8 @@ namespace Schnittstelle.Import.XML.v2013.Model
decimal sohlhoeheZulauf; decimal sohlhoeheZulauf;
decimal sohlhoeheAblauf; decimal sohlhoeheAblauf;
decimal laenge; decimal laenge;
Knoten? knotenZulauf; AbwassertechnischeAnlage? knotenZulauf;
Knoten? knotenAblauf; AbwassertechnischeAnlage? knotenAblauf;
int knotenAblaufTyp; int knotenAblaufTyp;
int knotenZulaufTyp; int knotenZulaufTyp;
bool isFiktiveLeitung = true; bool isFiktiveLeitung = true;
@@ -18,8 +18,8 @@ namespace Schnittstelle.Import.XML.v2013.Model
public decimal SohlhoeheZulauf { get => sohlhoeheZulauf; set => sohlhoeheZulauf = value; } public decimal SohlhoeheZulauf { get => sohlhoeheZulauf; set => sohlhoeheZulauf = value; }
public decimal SohlhoeheAblauf { get => sohlhoeheAblauf; set => sohlhoeheAblauf = value; } public decimal SohlhoeheAblauf { get => sohlhoeheAblauf; set => sohlhoeheAblauf = value; }
public Knoten? KnotenZulauf { get => knotenZulauf; set => knotenZulauf = value; } public AbwassertechnischeAnlage? KnotenZulauf { get => knotenZulauf; set => knotenZulauf = value; }
public Knoten? KnotenAblauf { get => knotenAblauf; set => knotenAblauf = value; } public AbwassertechnischeAnlage? KnotenAblauf { get => knotenAblauf; set => knotenAblauf = value; }
public int KnotenAblaufTyp { get => knotenAblaufTyp; set => knotenAblaufTyp = value; } public int KnotenAblaufTyp { get => knotenAblaufTyp; set => knotenAblaufTyp = value; }
public int KnotenZulaufTyp { get => knotenZulaufTyp; set => knotenZulaufTyp = value; } public int KnotenZulaufTyp { get => knotenZulaufTyp; set => knotenZulaufTyp = value; }
public bool IsFiktiveLeitung { get => isFiktiveLeitung; set => isFiktiveLeitung = value; } public bool IsFiktiveLeitung { get => isFiktiveLeitung; set => isFiktiveLeitung = value; }

View File

@@ -1,3 +1,6 @@
using Schnittstelle.Sanierung;
using System.Collections.Generic;
namespace Schnittstelle.Import.XML.v2013.Model namespace Schnittstelle.Import.XML.v2013.Model
{ {
public struct Quantifizierung public struct Quantifizierung
@@ -30,6 +33,8 @@ namespace Schnittstelle.Import.XML.v2013.Model
string kommentar; string kommentar;
Klassifizierung? klassifizierung; Klassifizierung? klassifizierung;
string kodeDescription; string kodeDescription;
IReparatur? reparatur;
IRenovation? renovation;
public decimal Station { get => station; set => station = value; } public decimal Station { get => station; set => station = value; }
public string Inspektionskode { get => inspektionskode; set => inspektionskode = value; } public string Inspektionskode { get => inspektionskode; set => inspektionskode = value; }
@@ -45,5 +50,7 @@ namespace Schnittstelle.Import.XML.v2013.Model
public string Kommentar { get => kommentar; set => kommentar = value; } public string Kommentar { get => kommentar; set => kommentar = value; }
public Klassifizierung? Klassifizierung { get => klassifizierung; set => klassifizierung = value; } public Klassifizierung? Klassifizierung { get => klassifizierung; set => klassifizierung = value; }
public string KodeDescription { get => kodeDescription; set => kodeDescription = value; } public string KodeDescription { get => kodeDescription; set => kodeDescription = value; }
public IReparatur Reparatur { get => reparatur; set => reparatur = value; }
public IRenovation Renovation { get => renovation; set => renovation = value; }
} }
} }

View File

@@ -1,6 +1,7 @@
using Schnittstelle.Contract; using Schnittstelle.Contract;
using Schnittstelle.DWA149_2_2013; using Schnittstelle.DWA149_2_2013;
using Schnittstelle.Import.XML.v2013.Model; using Schnittstelle.Import.XML.v2013.Model;
using Schnittstelle.Sanierung;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@@ -35,6 +36,22 @@ namespace Schnittstelle.Import.XML.v2013
RebuildStammdaten(); RebuildStammdaten();
} }
private static decimal ConvertXMLToDecimal(string input)
{
string str = string.Empty;
if(input.Contains('.'))
{
str = input.Replace('.', ',');
}
else
{
str = input;
}
if (decimal.TryParse(str, out decimal result)) return result;
else return new decimal();
}
private void RebuildStammdaten() private void RebuildStammdaten()
{ {
// liste an knoten // liste an knoten
@@ -43,15 +60,15 @@ namespace Schnittstelle.Import.XML.v2013
while (QueueToRebuild.Count > 0) while (QueueToRebuild.Count > 0)
{ {
AbwassertechnischeAnlage anlage = QueueToRebuild.Dequeue(); AbwassertechnischeAnlage anlage = QueueToRebuild.Dequeue();
anlage.Kante.KnotenZulauf = knoten.First(x => x.Objektbezeichnung.Equals(anlage.Kante.knotenZulaufTemp)).Knoten; anlage.Kante.KnotenZulauf = knoten.First(x => x.Objektbezeichnung.Equals(anlage.Kante.knotenZulaufTemp));
var d = knoten.FirstOrDefault(x => x.Objektbezeichnung.Equals(anlage.Kante.knotenAblaufTemp)); AbwassertechnischeAnlage? d = knoten.FirstOrDefault(x => x.Objektbezeichnung.Equals(anlage.Kante.knotenAblaufTemp));
if (d == null) if (d == null)
{ {
notFoundKnoten.Add(anlage.Kante.knotenAblaufTemp); notFoundKnoten.Add(anlage.Kante.knotenAblaufTemp);
} }
else else
{ {
anlage.Kante.KnotenAblauf = d.Knoten; anlage.Kante.KnotenAblauf = d;
} }
} }
} }
@@ -63,7 +80,7 @@ namespace Schnittstelle.Import.XML.v2013
inspektionsdaten = src.Item2; inspektionsdaten = src.Item2;
foreach (InspizierteAbwassertechnischeAnlage iat in inspektionsdaten) foreach (InspizierteAbwassertechnischeAnlage iat in inspektionsdaten)
{ {
AbwassertechnischeAnlage stammdatens = stammdaten.Find(x => x.Objektbezeichnung.Equals(iat.Objektbezeichnung));//; AbwassertechnischeAnlage stammdatens = stammdaten.Find(x => x.Objektbezeichnung.Equals(iat.Objektbezeichnung) && x.ObjektArt.Equals(EObjektArt.KANTE));//;
string[] filepathsplited = this.XmlFile.Split(Path.DirectorySeparatorChar); string[] filepathsplited = this.XmlFile.Split(Path.DirectorySeparatorChar);
KanalObjekte.Add(new KanalObjekt() KanalObjekte.Add(new KanalObjekt()
@@ -195,7 +212,7 @@ namespace Schnittstelle.Import.XML.v2013
result.Rohrleitungstyp = (ERohrleitungstyp)Convert.ToInt32(d.InnerText); result.Rohrleitungstyp = (ERohrleitungstyp)Convert.ToInt32(d.InnerText);
break; break;
case "Inspektionslaenge": case "Inspektionslaenge":
result.Inspektionslaenge = Convert.ToDecimal(d.InnerText.Replace('.', ',')); result.Inspektionslaenge = ConvertXMLToDecimal(d.InnerText);
break; break;
case "Inspektionsrichtung": case "Inspektionsrichtung":
result.Inspektionsrichtung = d.InnerText; result.Inspektionsrichtung = d.InnerText;
@@ -253,7 +270,7 @@ namespace Schnittstelle.Import.XML.v2013
switch (d.Name) switch (d.Name)
{ {
case "Station": case "Station":
rZustand.Station = Convert.ToDecimal(d.InnerText.Replace('.', ',')); rZustand.Station = ConvertXMLToDecimal(d.InnerText);
break; break;
case "InspektionsKode": case "InspektionsKode":
rZustand.Inspektionskode = d.InnerText; rZustand.Inspektionskode = d.InnerText;
@@ -275,12 +292,12 @@ namespace Schnittstelle.Import.XML.v2013
break; break;
case "Quantifizierung1Numerisch": case "Quantifizierung1Numerisch":
Quantifizierung quantifizierung1 = new Quantifizierung(); Quantifizierung quantifizierung1 = new Quantifizierung();
quantifizierung1.Numerisch = Convert.ToDecimal(d.InnerText.Replace('.', ',')); quantifizierung1.Numerisch = ConvertXMLToDecimal(d.InnerText);
rZustand.Quantifizierung1 = quantifizierung1; rZustand.Quantifizierung1 = quantifizierung1;
break; break;
case "Quantifizierung2Numerisch": case "Quantifizierung2Numerisch":
Quantifizierung quantifizierung2 = new Quantifizierung(); Quantifizierung quantifizierung2 = new Quantifizierung();
quantifizierung2.Numerisch = Convert.ToDecimal(d.InnerText.Replace('.', ',')); quantifizierung2.Numerisch = ConvertXMLToDecimal(d.InnerText);
rZustand.Quantifizierung1 = quantifizierung2; rZustand.Quantifizierung1 = quantifizierung2;
break; break;
case "Quantifizierung1Text": case "Quantifizierung1Text":
@@ -314,7 +331,9 @@ namespace Schnittstelle.Import.XML.v2013
ICodeBeschreibung codedescription = factory.GetCodeBeschreibung(rZustand); ICodeBeschreibung codedescription = factory.GetCodeBeschreibung(rZustand);
rZustand.KodeDescription = codedescription.GetBeschreibung; rZustand.KodeDescription = codedescription.GetBeschreibung;
//Console.WriteLine(rZustand.KodeDescription); if (codedescription is IRenovation) rZustand.Renovation = (IRenovation)codedescription;
if(codedescription is IReparatur) rZustand.Reparatur = (IReparatur)codedescription;
result.Add(rZustand); result.Add(rZustand);
} }
@@ -405,7 +424,7 @@ namespace Schnittstelle.Import.XML.v2013
case "Profilart": grunddaten.Profilart = Convert.ToInt32(d.InnerText); break; case "Profilart": grunddaten.Profilart = Convert.ToInt32(d.InnerText); break;
case "HerkunftMaterial": grunddaten.HerkunftMaterial = Convert.ToInt32(d.InnerText); break; case "HerkunftMaterial": grunddaten.HerkunftMaterial = Convert.ToInt32(d.InnerText); break;
case "Material": grunddaten.Material = d.InnerText; break; case "Material": grunddaten.Material = d.InnerText; break;
case "Regeleinzelrohrlaenge": grunddaten.Regeleinzelrohrlaenge = Convert.ToDecimal(d.InnerText.Replace('.', ',')); break; case "Regeleinzelrohrlaenge": grunddaten.Regeleinzelrohrlaenge = ConvertXMLToDecimal(d.InnerText); break;
case "ArtAuskleidung": grunddaten.ArtAuskleidung = Convert.ToInt32(d.InnerText); break; case "ArtAuskleidung": grunddaten.ArtAuskleidung = Convert.ToInt32(d.InnerText); break;
case "Kanalart": grunddaten.Kanalart = d.InnerText; break; case "Kanalart": grunddaten.Kanalart = d.InnerText; break;
case "Anschlussdaten": grunddaten.Anschlussddaten = ParseAnschlussdaten(d); break; case "Anschlussdaten": grunddaten.Anschlussddaten = ParseAnschlussdaten(d); break;
@@ -429,6 +448,7 @@ namespace Schnittstelle.Import.XML.v2013
int second = Convert.ToInt32(parsedtime[2]); int second = Convert.ToInt32(parsedtime[2]);
return new DateTime(year, month, day, hour, minute, second); return new DateTime(year, month, day, hour, minute, second);
} }
private static Anschlussdaten ParseAnschlussdaten(XmlNode anschlussdaten) private static Anschlussdaten ParseAnschlussdaten(XmlNode anschlussdaten)
{ {
Anschlussdaten result = new Anschlussdaten(); Anschlussdaten result = new Anschlussdaten();
@@ -438,7 +458,7 @@ namespace Schnittstelle.Import.XML.v2013
{ {
case "Objektbezeichnung": result.Objektbezeichnung = d.InnerText; break; case "Objektbezeichnung": result.Objektbezeichnung = d.InnerText; break;
case "Kantentyp": result.Kantentyp = (EKantenTyp)Convert.ToInt32(d.InnerText); break; case "Kantentyp": result.Kantentyp = (EKantenTyp)Convert.ToInt32(d.InnerText); break;
case "Entfernung": result.Entfernung = Convert.ToDecimal(d.InnerText.Replace('.', ',')); break; case "Entfernung": result.Entfernung = ConvertXMLToDecimal(d.InnerText); break;
case "Fixierung": result.Fixierung = d.InnerText; break; case "Fixierung": result.Fixierung = d.InnerText; break;
default: throw new NotImplementedException(d.Name); default: throw new NotImplementedException(d.Name);
@@ -491,7 +511,7 @@ namespace Schnittstelle.Import.XML.v2013
return result; return result;
} }
private Geometrie parseGeometrie(XmlNode aktuell) private static Geometrie parseGeometrie(XmlNode aktuell)
{ {
Geometrie result = new Geometrie(); Geometrie result = new Geometrie();
foreach (XmlNode s in aktuell.ChildNodes) foreach (XmlNode s in aktuell.ChildNodes)
@@ -511,7 +531,7 @@ namespace Schnittstelle.Import.XML.v2013
} }
private Geometriedaten parseGeometrieDaten(XmlNode aktuel) private static Geometriedaten parseGeometrieDaten(XmlNode aktuel)
{ {
Geometriedaten result = new Geometriedaten(); Geometriedaten result = new Geometriedaten();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
@@ -522,7 +542,7 @@ namespace Schnittstelle.Import.XML.v2013
result.Knoten = parseGeometrieKnoten(s); result.Knoten = parseGeometrieKnoten(s);
break; break;
case "Kanten": case "Kanten":
parseGeometrieKanten(s); result.Kanten = parseGeometrieKanten(s);
break; break;
default: throw new NotImplementedException(s.Name); default: throw new NotImplementedException(s.Name);
} }
@@ -531,52 +551,58 @@ namespace Schnittstelle.Import.XML.v2013
return result; return result;
} }
private void parseGeometrieKanten(XmlNode aktuel) private static List<PolyKante> parseGeometrieKanten(XmlNode aktuel)
{ {
List<PolyKante> result = new List<PolyKante>();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
{ {
switch (s.Name) switch (s.Name)
{ {
case "Kante": case "Kante":
parseGeometrieKante(s); result.Add(parseGeometrieKante(s));
break; break;
default: throw new NotImplementedException(s.Name); default: throw new NotImplementedException(s.Name);
} }
} }
return result;
} }
private void parseGeometrieKante(XmlNode aktuel) private static PolyKante parseGeometrieKante(XmlNode aktuel)
{ {
PolyKante result = new PolyKante();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
{ {
switch (s.Name) switch (s.Name)
{ {
case "Start": case "Start":
parseGeometrieKanteStartEnde(s); result.Start = parseGeometrieKanteStartEnde(s);
break; break;
case "Ende": case "Ende":
parseGeometrieKanteStartEnde(s); result.Ende = parseGeometrieKanteStartEnde(s);
break; break;
default: throw new NotImplementedException(s.Name); default: throw new NotImplementedException(s.Name);
} }
} }
return result;
} }
private void parseGeometrieKanteStartEnde(XmlNode aktuel) private static PolyKanteAttribute parseGeometrieKanteStartEnde(XmlNode aktuel)
{ {
PolyKanteAttribute result = new PolyKanteAttribute();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
{ {
switch (s.Name) switch (s.Name)
{ {
case "Rechtswert": break; case "Rechtswert": result.Rechtswert = ConvertXMLToDecimal(s.InnerText); break;
case "Hochwert": break; case "Hochwert": result.Hochwert = ConvertXMLToDecimal(s.InnerText); break;
case "Punkthoehe": break; case "Punkthoehe": result.Punkthoehe = ConvertXMLToDecimal(s.InnerText); break;
case "PunktattributAbwasser": break; case "PunktattributAbwasser": result.PunktattributAbwasser = s.InnerText; break;
default: throw new NotImplementedException(s.Name); default: throw new NotImplementedException(s.Name);
} }
} }
return result;
} }
private Geometriedatenknoten parseGeometrieKnoten(XmlNode aktuel) private static Geometriedatenknoten parseGeometrieKnoten(XmlNode aktuel)
{ {
Geometriedatenknoten result = new Geometriedatenknoten(); Geometriedatenknoten result = new Geometriedatenknoten();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
@@ -593,7 +619,7 @@ namespace Schnittstelle.Import.XML.v2013
return result; return result;
} }
private Punkt parseGeometrieKnotenPunkt(XmlNode aktuel) private static Punkt parseGeometrieKnotenPunkt(XmlNode aktuel)
{ {
Punkt punkt = new Punkt(); Punkt punkt = new Punkt();
foreach (XmlNode s in aktuel.ChildNodes) foreach (XmlNode s in aktuel.ChildNodes)
@@ -601,13 +627,13 @@ namespace Schnittstelle.Import.XML.v2013
switch (s.Name) switch (s.Name)
{ {
case "Rechtswert": case "Rechtswert":
punkt.Rechtswert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); punkt.Rechtswert = ConvertXMLToDecimal(s.InnerText);
break; break;
case "Hochwert": case "Hochwert":
punkt.Hochwert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); punkt.Hochwert = ConvertXMLToDecimal(s.InnerText);
break; break;
case "Punkthoehe": case "Punkthoehe":
punkt.Punkthoehe = Convert.ToDecimal(s.InnerText.Replace('.', ',')); punkt.Punkthoehe = ConvertXMLToDecimal(s.InnerText);
break; break;
case "PunktattributAbwasser": case "PunktattributAbwasser":
punkt.PunktattributeAbwasser = s.InnerText; punkt.PunktattributeAbwasser = s.InnerText;
@@ -618,7 +644,7 @@ namespace Schnittstelle.Import.XML.v2013
return punkt; return punkt;
} }
private Kante parseKante(XmlNode aktuell) private static Kante parseKante(XmlNode aktuell)
{ {
Kante result = new Kante(); Kante result = new Kante();
@@ -644,13 +670,13 @@ namespace Schnittstelle.Import.XML.v2013
result.KnotenAblaufTyp = Convert.ToInt32(s.InnerText); result.KnotenAblaufTyp = Convert.ToInt32(s.InnerText);
break; break;
case "SohlhoeheZulauf": case "SohlhoeheZulauf":
result.SohlhoeheZulauf = Convert.ToDecimal(s.InnerText.Replace('.',',')); result.SohlhoeheZulauf = ConvertXMLToDecimal(s.InnerText);
break; break;
case "SohlhoeheAblauf": case "SohlhoeheAblauf":
result.SohlhoeheAblauf = Convert.ToDecimal(s.InnerText.Replace('.',',')); result.SohlhoeheAblauf = ConvertXMLToDecimal(s.InnerText);
break; break;
case "Laenge": case "Laenge":
result.Laenge = Convert.ToDecimal(s.InnerText); result.Laenge = ConvertXMLToDecimal(s.InnerText);
break; break;
case "Material": case "Material":
result.Material = s.InnerText; result.Material = s.InnerText;
@@ -663,7 +689,7 @@ namespace Schnittstelle.Import.XML.v2013
return result; return result;
} }
private Profil getProfil(XmlNode s) private static Profil getProfil(XmlNode s)
{ {
int Profilart = 0, Profilbreite = 0, Profilhoehe = 0; int Profilart = 0, Profilbreite = 0, Profilhoehe = 0;
foreach (XmlNode d in s.ChildNodes) foreach (XmlNode d in s.ChildNodes)

View File

@@ -0,0 +1,33 @@
using Schnittstelle.DWA149_2_2013;
using System.Collections.Generic;
namespace Schnittstelle.Sanierung
{
public interface IReparatur
{
List<SanierungMassnahme> Massnahmen { get; }
}
public interface IRenovation
{
List<SanierungMassnahme> Massnahmen { get; }
}
public class SanierungMassnahme
{
string beschreibung = string.Empty;
decimal kosten = decimal.MinValue;
public string Beschreibung { get => beschreibung; }
public decimal Kosten { get => kosten; }
public SanierungMassnahme(string beschreibung, decimal kosten)
{
this.beschreibung=beschreibung;
this.kosten = kosten;
}
}
}