Parser erweitert

This commit is contained in:
HuskyTeufel
2021-08-10 16:18:17 +02:00
parent 5c16797b0a
commit e28eee6a52
6 changed files with 10052 additions and 301 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -76,4 +76,12 @@ namespace XMLParser
LAENGEZULAGEUMSATZ, LAENGEZULAGEUMSATZ,
GESAMTUMSATZ GESAMTUMSATZ
} }
public enum EWasserhaltung {
NONE=1,
OBERHALB,
TEILOBERHALB,
SEITENZULAUFE,
UNTERHALB,
OTHER
}
} }

View File

@@ -4,8 +4,14 @@ namespace XMLParser
{ {
public class OptischeInspektion public class OptischeInspektion
{ {
int auftragskennung;
DateTime inspektionstime; DateTime inspektionstime;
Rohrleitung rohrleitung; Rohrleitung rohrleitung;
string nameUntersucher;
EWetter wetter;
bool reinigung;
EWasserhaltung wasserhaltung;
EInspektionverfahren inspektionsverfahren;
public DateTime Inspektionstime public DateTime Inspektionstime
{ {
@@ -48,5 +54,11 @@ namespace XMLParser
rohrleitung = value; rohrleitung = value;
} }
} }
public string NameUntersucher { get => nameUntersucher; set => nameUntersucher = value; }
public EWetter Wetter { get => wetter; set => wetter = value; }
public bool Reinigung { get => reinigung; set => reinigung = value; }
public EWasserhaltung Wasserhaltung { get => wasserhaltung; set => wasserhaltung = value; }
public EInspektionverfahren Inspektionsverfahren { get => inspektionsverfahren; set => inspektionsverfahren = value; }
public int Auftragskennung { get => auftragskennung; set => auftragskennung = value; }
} }
} }

View File

@@ -10,6 +10,7 @@ namespace XMLParser
{ {
public class XMLParse public class XMLParse
{ {
private string xmlFile;
private List<AbwassertechnischeAnlage> stammdaten = null; private List<AbwassertechnischeAnlage> stammdaten = null;
private List<InspizierteAbwassertechnischeAnlage> inspektionsdaten = null; private List<InspizierteAbwassertechnischeAnlage> inspektionsdaten = null;
private XmlNamespaceManager manager = null; private XmlNamespaceManager manager = null;
@@ -18,13 +19,14 @@ namespace XMLParser
private Queue<AbwassertechnischeAnlage> QueueToRebuild = new Queue<AbwassertechnischeAnlage>(); private Queue<AbwassertechnischeAnlage> QueueToRebuild = new Queue<AbwassertechnischeAnlage>();
public List<KanalObjekt> KanalObjekte { get => kanalObjekte; private set => kanalObjekte = value; } public List<KanalObjekt> KanalObjekte { get => kanalObjekte; private set => kanalObjekte = value; }
public string XmlFile {get => xmlFile; private set => xmlFile = value;}
public XMLParse(string xmlfile) public XMLParse(string xmltoparse)
{ {
XmlFile = xmltoparse;
KanalObjekte = new List<KanalObjekt>(); KanalObjekte = new List<KanalObjekt>();
stammdaten = new List<AbwassertechnischeAnlage>(); stammdaten = new List<AbwassertechnischeAnlage>();
inspektionsdaten = new List<InspizierteAbwassertechnischeAnlage>(); inspektionsdaten = new List<InspizierteAbwassertechnischeAnlage>();
ParseFile(xmlfile); ParseFile();
RebuildStammdaten(); RebuildStammdaten();
} }
@@ -40,13 +42,11 @@ namespace XMLParser
} }
} }
private void ParseFile(string xmldatei) private void ParseFile()
{ {
Tuple<List<AbwassertechnischeAnlage>,List<InspizierteAbwassertechnischeAnlage>> src = LoadRawFile(xmldatei); Tuple<List<AbwassertechnischeAnlage>,List<InspizierteAbwassertechnischeAnlage>> src = LoadRawFile();
stammdaten = src.Item1;//.FindAll(x => x.ObjektArt.Equals(EObjektArt.KNOTEN)); stammdaten = src.Item1;
inspektionsdaten = src.Item2; inspektionsdaten = src.Item2;
//kanalObjekte = new List<KanalObjekt>();
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));//;
KanalObjekte.Add(new KanalObjekt() { KanalObjekte.Add(new KanalObjekt() {
@@ -56,12 +56,12 @@ namespace XMLParser
} }
} }
private Tuple<List<AbwassertechnischeAnlage>,List<InspizierteAbwassertechnischeAnlage>> LoadRawFile(string xmldatei) { private Tuple<List<AbwassertechnischeAnlage>,List<InspizierteAbwassertechnischeAnlage>> LoadRawFile() {
List<AbwassertechnischeAnlage> Stammdaten = new List<AbwassertechnischeAnlage>(); List<AbwassertechnischeAnlage> Stammdaten = new List<AbwassertechnischeAnlage>();
List<InspizierteAbwassertechnischeAnlage> Inspektionsdaten = new List<InspizierteAbwassertechnischeAnlage>(); List<InspizierteAbwassertechnischeAnlage> Inspektionsdaten = new List<InspizierteAbwassertechnischeAnlage>();
XmlDocument doc = new XmlDocument(); XmlDocument doc = new XmlDocument();
doc.Load(xmldatei); doc.Load(XmlFile);
rootChild = doc.LastChild; rootChild = doc.LastChild;
manager = new XmlNamespaceManager(doc.NameTable); manager = new XmlNamespaceManager(doc.NameTable);
@@ -93,15 +93,9 @@ namespace XMLParser
{ {
switch (d.Name) switch (d.Name)
{ {
case "Objektbezeichnung": case "Objektbezeichnung": result.Objektbezeichnung = d.InnerText; break;
result.Objektbezeichnung = d.InnerText; case "Anlagentyp": result.Anlagentyp = (EAnlagetyp)Convert.ToInt32(d.InnerText); break;
// if (d.InnerText.Equals("44903796")) Debugger.Break();
break;
case "Anlagentyp":
result.Anlagentyp = (EAnlagetyp)Convert.ToInt32(d.InnerText); //anlagentyp = Convert.ToInt32(d.InnerText);
break;
case "Lage": case "Lage":
//throw new NotImplementedException();
if (!d.HasChildNodes) break; if (!d.HasChildNodes) break;
string strassename =""; string strassename ="";
string ortname = ""; string ortname = "";
@@ -112,15 +106,14 @@ namespace XMLParser
case "Strassenname": strassename = _temp.InnerText; break; case "Strassenname": strassename = _temp.InnerText; break;
case "Ortsteilname": ortname = _temp.InnerText; break; case "Ortsteilname": ortname = _temp.InnerText; break;
case "LageOberflaeche": break; case "LageOberflaeche": break;
default: break; case "Strassenschluessel": break;
//default: throw new NotImplementedException(_temp.Name); case "Ortsteilschluessel": break;
default: throw new NotImplementedException(_temp.Name);
} }
} }
result.Lage = new Lage(strassename, ortname); result.Lage = new Lage(strassename, ortname);
break; break;
case "OptischeInspektion": case "OptischeInspektion": result.OptischeInspektion = parseOptischeInspektion(d); break;
result.OptischeInspektion = parseOptischeInspektion(d);
break;
} }
} }
return result; return result;
@@ -135,27 +128,18 @@ namespace XMLParser
{ {
switch(node.Name) switch(node.Name)
{ {
case "Auftragskennung": case "Auftragskennung": result.Auftragskennung = Convert.ToInt32(node.InnerText);
break; break;
case "Inspektionsdatum": case "Inspektionsdatum": datum = node.InnerText; break;
datum = node.InnerText; case "Inspektionsverfahren": result.Inspektionsverfahren = (EInspektionverfahren)Convert.ToInt32(node.InnerText); break;
break; case "NameUntersucher": result.NameUntersucher = node.InnerText; break;
case "Inspektionsverfahren": case "Uhrzeit": time = node.InnerText; break;
break; case "Wetter": result.Wetter = (EWetter)Convert.ToInt32(node.InnerText); break;
case "NameUntersucher": case "Reinigung": result.Reinigung = node.InnerText.Equals("1") ? true: false; break;
break; case "Wasserhaltung": result.Wasserhaltung = (EWasserhaltung)Convert.ToInt32(node.InnerText); break;
case "Uhrzeit": case "Rohrleitung": result.Rohrleitung = parseRohrleitung(node); break;
time = node.InnerText; case "Videoablagereferenz": break;
break; default: throw new NotImplementedException(node.Name);
case "Wetter":
break;
case "Reinigung":
break;
case "Wasserhaltung":
break;
case "Rohrleitung":
result.Rohrleitung = parseRohrleitung(node);
break;
} }
} }
result.Inspektionstime = makeInspektionstime(datum, time); result.Inspektionstime = makeInspektionstime(datum, time);
@@ -352,12 +336,26 @@ namespace XMLParser
break; break;
case "Lage": case "Lage":
break; break;
case "AlteObjektbezeichnung":break;
case "Status":break;
case "Baujahr":break;
case "Umweltparameter":break;
case "Kommentar": break;
case "Geometrie": result.Geometrie = parseGeometrie(aktuell); break;
default: throw new NotImplementedException(aktuell.Name);
} }
} }
return result; return result;
} }
private Geometrie parseGeometrie(XmlNode aktuell)
{
return new Geometrie();
//throw new NotImplementedException();
}
private Kante parseKante(XmlNode aktuell) private Kante parseKante(XmlNode aktuell)
{ {
/* /*