From 3c8cd670b4b8bf92285412eba2b2b9539f41dfa3 Mon Sep 17 00:00:00 2001 From: Damian Wessels Date: Mon, 26 Aug 2024 12:23:32 +0200 Subject: [PATCH] umgeschrieben auf static funktion --- Schnittstelle/Import/XML/v2013/XML2013.cs | 46 +++++++++++++++-------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/Schnittstelle/Import/XML/v2013/XML2013.cs b/Schnittstelle/Import/XML/v2013/XML2013.cs index f7a52f1..8d20bfb 100644 --- a/Schnittstelle/Import/XML/v2013/XML2013.cs +++ b/Schnittstelle/Import/XML/v2013/XML2013.cs @@ -35,6 +35,22 @@ namespace Schnittstelle.Import.XML.v2013 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() { // liste an knoten @@ -195,7 +211,7 @@ namespace Schnittstelle.Import.XML.v2013 result.Rohrleitungstyp = (ERohrleitungstyp)Convert.ToInt32(d.InnerText); break; case "Inspektionslaenge": - result.Inspektionslaenge = Convert.ToDecimal(d.InnerText.Replace('.', ',')); + result.Inspektionslaenge = ConvertXMLToDecimal(d.InnerText); break; case "Inspektionsrichtung": result.Inspektionsrichtung = d.InnerText; @@ -253,7 +269,7 @@ namespace Schnittstelle.Import.XML.v2013 switch (d.Name) { case "Station": - rZustand.Station = Convert.ToDecimal(d.InnerText.Replace('.', ',')); + rZustand.Station = ConvertXMLToDecimal(d.InnerText); break; case "InspektionsKode": rZustand.Inspektionskode = d.InnerText; @@ -275,12 +291,12 @@ namespace Schnittstelle.Import.XML.v2013 break; case "Quantifizierung1Numerisch": Quantifizierung quantifizierung1 = new Quantifizierung(); - quantifizierung1.Numerisch = Convert.ToDecimal(d.InnerText.Replace('.', ',')); + quantifizierung1.Numerisch = ConvertXMLToDecimal(d.InnerText); rZustand.Quantifizierung1 = quantifizierung1; break; case "Quantifizierung2Numerisch": Quantifizierung quantifizierung2 = new Quantifizierung(); - quantifizierung2.Numerisch = Convert.ToDecimal(d.InnerText.Replace('.', ',')); + quantifizierung2.Numerisch = ConvertXMLToDecimal(d.InnerText); rZustand.Quantifizierung1 = quantifizierung2; break; case "Quantifizierung1Text": @@ -404,7 +420,7 @@ namespace Schnittstelle.Import.XML.v2013 case "Profilart": grunddaten.Profilart = Convert.ToInt32(d.InnerText); break; case "HerkunftMaterial": grunddaten.HerkunftMaterial = Convert.ToInt32(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 "Kanalart": grunddaten.Kanalart = d.InnerText; break; case "Anschlussdaten": grunddaten.Anschlussddaten = ParseAnschlussdaten(d); break; @@ -437,7 +453,7 @@ namespace Schnittstelle.Import.XML.v2013 { case "Objektbezeichnung": result.Objektbezeichnung = 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; default: throw new NotImplementedException(d.Name); @@ -571,9 +587,9 @@ namespace Schnittstelle.Import.XML.v2013 { switch (s.Name) { - case "Rechtswert": result.Rechtswert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); break; - case "Hochwert": result.Hochwert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); break; - case "Punkthoehe": result.Punkthoehe = Convert.ToDecimal(s.InnerText.Replace('.', ',')); break; + case "Rechtswert": result.Rechtswert = ConvertXMLToDecimal(s.InnerText); break; + case "Hochwert": result.Hochwert = ConvertXMLToDecimal(s.InnerText); break; + case "Punkthoehe": result.Punkthoehe = ConvertXMLToDecimal(s.InnerText); break; case "PunktattributAbwasser": result.PunktattributAbwasser = s.InnerText; break; default: throw new NotImplementedException(s.Name); } @@ -606,13 +622,13 @@ namespace Schnittstelle.Import.XML.v2013 switch (s.Name) { case "Rechtswert": - punkt.Rechtswert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); + punkt.Rechtswert = ConvertXMLToDecimal(s.InnerText); break; case "Hochwert": - punkt.Hochwert = Convert.ToDecimal(s.InnerText.Replace('.', ',')); + punkt.Hochwert = ConvertXMLToDecimal(s.InnerText); break; case "Punkthoehe": - punkt.Punkthoehe = Convert.ToDecimal(s.InnerText.Replace('.', ',')); + punkt.Punkthoehe = ConvertXMLToDecimal(s.InnerText); break; case "PunktattributAbwasser": punkt.PunktattributeAbwasser = s.InnerText; @@ -649,13 +665,13 @@ namespace Schnittstelle.Import.XML.v2013 result.KnotenAblaufTyp = Convert.ToInt32(s.InnerText); break; case "SohlhoeheZulauf": - result.SohlhoeheZulauf = Convert.ToDecimal(s.InnerText.Replace('.',',')); + result.SohlhoeheZulauf = ConvertXMLToDecimal(s.InnerText); break; case "SohlhoeheAblauf": - result.SohlhoeheAblauf = Convert.ToDecimal(s.InnerText.Replace('.',',')); + result.SohlhoeheAblauf = ConvertXMLToDecimal(s.InnerText); break; case "Laenge": - result.Laenge = Convert.ToDecimal(s.InnerText.Replace('.',',')); + result.Laenge = ConvertXMLToDecimal(s.InnerText); break; case "Material": result.Material = s.InnerText;