From de1d221956564c1523fd943a47860178d09fb1cc Mon Sep 17 00:00:00 2001 From: Husky Date: Wed, 11 Aug 2021 21:11:50 +0200 Subject: [PATCH] csv writer angefangen --- XMLParser/KanalObjekt.cs | 3 ++- XMLParser/XMLParse.cs | 4 ++++ XMLProgramm/Program.cs | 42 ++++++++++++++++++++++++++++++++++------ 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/XMLParser/KanalObjekt.cs b/XMLParser/KanalObjekt.cs index 4bc9855..8d76823 100644 --- a/XMLParser/KanalObjekt.cs +++ b/XMLParser/KanalObjekt.cs @@ -2,7 +2,8 @@ namespace XMLParser { public class KanalObjekt { + public string XmlFileName {get;set;} public AbwassertechnischeAnlage Stammdaten { get; internal set; } public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; internal set; } } -} \ No newline at end of file +} diff --git a/XMLParser/XMLParse.cs b/XMLParser/XMLParse.cs index dbb9e37..ab6393e 100644 --- a/XMLParser/XMLParse.cs +++ b/XMLParser/XMLParse.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; +using System.IO; namespace XMLParser { @@ -49,7 +50,10 @@ namespace XMLParser inspektionsdaten = src.Item2; foreach(InspizierteAbwassertechnischeAnlage iat in inspektionsdaten) { AbwassertechnischeAnlage stammdatens = stammdaten.Find(x => x.Objektbezeichnung.Equals(iat.Objektbezeichnung));//; + string[] filepathsplited = this.XmlFile.Split(Path.DirectorySeparatorChar); + KanalObjekte.Add(new KanalObjekt() { + XmlFileName = filepathsplited[filepathsplited.Count()-1], Stammdaten = stammdatens, Inspektionsdaten = iat, }); diff --git a/XMLProgramm/Program.cs b/XMLProgramm/Program.cs index 91b9b2c..6a77d1c 100644 --- a/XMLProgramm/Program.cs +++ b/XMLProgramm/Program.cs @@ -3,15 +3,47 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using System.Text; using XMLParser; namespace XMLProgramm { + class CSVWriter + { + FileStream handle = null; + public CSVWriter() + { + handle = File.Create("./data.csv"); + string WriteHeader = "Filename,Inspektionsdatum,Straßenablaufeanzahl,SonstigeLeitungen,Längenzugabe,Hauptkanallänge"; + byte[] bytes = Encoding.UTF8.GetBytes(WriteHeader); + handle.Write(bytes,0,bytes.Length); + } + + ~CSVWriter() + { + handle.Close(); + handle.Dispose(); + } + + internal void WriteDay(Dictionary calculated, List inspektionenAmTag) + { + int anzahlStraßenablaufe = (int)calculated[ECalculatedResult.STRASSENABLAUFANZAHL]; + int sonstigeLeitungen = (int)calculated[ECalculatedResult.SONSTIGEANZAHL]; + decimal LaengeZulageMeter = calculated[ECalculatedResult.LAENGEZULAGEMETER]; + decimal HauptkanalLänge = calculated[ECalculatedResult.HAUPTKANALUMSATZ] / 1.6m; + + KanalObjekt last = inspektionenAmTag.Last(); + + string writeToFile = last.XmlFileName + "," + last.Inspektionsdaten.OptischeInspektion.Inspektionsdatum + ","+anzahlStraßenablaufe+","+sonstigeLeitungen+","+LaengeZulageMeter+","+HauptkanalLänge; + + //throw new NotImplementedException(); + } + } class Program { - static void Main(string[] args) { + CSVWriter csvWriter = new CSVWriter(); List objekte = new List(); DirectoryInfo info = new DirectoryInfo("./"); FileInfo[] daten = info.GetFiles("*.xml"); @@ -19,16 +51,14 @@ namespace XMLProgramm XMLParse ser = new XMLParse(aktuell.FullName); objekte.AddRange(ser.KanalObjekte); } - - //XMLParse ser = new XMLParse("KS_Oldenburg_Heideweg.xml"); - //objekte.AddRange(ser.KanalObjekte); - //objekte = objekte.OrderBy(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum); IEnumerable datums = objekte.OrderBy(d => d.Inspektionsdaten.OptischeInspektion.Inspektionstime).Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct(); decimal gesamt = 0.0m; //Dictionary s = CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("05.08.2021"))); foreach(string datum in datums) { - Dictionary s = Calculate.CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum))); + List InspektionenAmTag = objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum)); + Dictionary s = Calculate.CalculateDay(InspektionenAmTag); + csvWriter.WriteDay(s,InspektionenAmTag); Console.WriteLine("Umsatz am : "+datum + " " + s[ECalculatedResult.GESAMTUMSATZ]); gesamt +=s[ECalculatedResult.GESAMTUMSATZ]; //if(datum.Equals("05.08.2021")) Debugger.Break();