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,
GESAMTUMSATZ
}
public enum EWasserhaltung {
NONE=1,
OBERHALB,
TEILOBERHALB,
SEITENZULAUFE,
UNTERHALB,
OTHER
}
}

View File

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