diff --git a/XMLParser.Contract/IProtokollWriter..cs b/XMLParser.Contract/IProtokollWriter..cs index 2e06b42..84caba5 100644 --- a/XMLParser.Contract/IProtokollWriter..cs +++ b/XMLParser.Contract/IProtokollWriter..cs @@ -6,5 +6,6 @@ namespace XMLParser.Contract public interface IProtokollWriter { void WriteEntry(Dictionary calculated, List inspektionenAmTag); + void WriteBaried(string content); } } \ No newline at end of file diff --git a/XMLParser.Functions/CSVWriterBase.cs b/XMLParser.Functions/CSVWriterBase.cs index b7fefe5..8585a26 100644 --- a/XMLParser.Functions/CSVWriterBase.cs +++ b/XMLParser.Functions/CSVWriterBase.cs @@ -13,6 +13,10 @@ namespace XMLParser.Functions { internal FileStream handle = null; + public void WriteBaried(string content) + { + throw new NotImplementedException(); + } public abstract void WriteEntry(Dictionary calculated, List inspektionenAmTag); diff --git a/XMLParser.Functions/CalculateDay.cs b/XMLParser.Functions/CalculateDay.cs index b56b9e8..1465e07 100644 --- a/XMLParser.Functions/CalculateDay.cs +++ b/XMLParser.Functions/CalculateDay.cs @@ -8,6 +8,27 @@ namespace XMLParser.Functions { public static class Calculate { + public static string CalculateWaterBariedAsString(List inspektionen) + { + List barieded = inspektionen.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Wasserhaltung != EWasserhaltung.NONE); + List DistinctDurchmesser = barieded.Select(s => s.Inspektionsdaten.OptischeInspektion.Rohrleitung.Grunddaten.Profilbreite).Distinct().ToList(); + + string result = "#ANZAHLGESAMT# Dichtkissen gesetzt. "; + int counter = 0; + + foreach(int durchmesser in DistinctDurchmesser) + { + List abgesperrt = barieded.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Rohrleitung.Grunddaten.Profilbreite.Equals(durchmesser)); + result = string.Format("{0} DN{1} in Schacht", result, durchmesser); + foreach(KanalObjekt objekt in abgesperrt) + { + result = string.Format(" {0} {1} ", result, objekt.Stammdaten.Objektbezeichnung); + counter++; + } + } + result = result.Replace("#ANZAHLGESAMT#",counter.ToString()); + return result; + } public static Dictionary CalculateStreet(List inspektionen) { Dictionary result = new Dictionary(); diff --git a/XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs b/XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs index 6d7a849..a1e2d60 100644 --- a/XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs +++ b/XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs @@ -74,7 +74,7 @@ namespace XMLParser.Functions.ProtokollWriter makeHeaderTitlesInHtml(avaibleHeaders); writeToFile(result); writeToFile(""); - writeHTMLFooter(); + } @@ -87,5 +87,12 @@ namespace XMLParser.Functions.ProtokollWriter } writeToFile(""); } + + public void WriteBaried(string content) + { + + writeToFile(string.Format("

{0}

",content)); + writeHTMLFooter(); + } } } \ No newline at end of file diff --git a/XMLParser.Functions/UmsatzCalculator/Strassenumsatz.cs b/XMLParser.Functions/UmsatzCalculator/Strassenumsatz.cs index 36e4656..981ff0b 100644 --- a/XMLParser.Functions/UmsatzCalculator/Strassenumsatz.cs +++ b/XMLParser.Functions/UmsatzCalculator/Strassenumsatz.cs @@ -13,6 +13,7 @@ namespace XMLParser.Functions.UmsatzCalculator Dictionary d = XMLParser.Functions.Calculate.CalculateStreet(objekte); protokollWriter.WriteEntry(d,objekte); + protokollWriter.WriteBaried(XMLParser.Functions.Calculate.CalculateWaterBariedAsString(objekte)); } } } diff --git a/XMLProgramm/Program.cs b/XMLProgramm/Program.cs index 37d8f19..b0aa96a 100644 --- a/XMLProgramm/Program.cs +++ b/XMLProgramm/Program.cs @@ -31,7 +31,7 @@ namespace XMLProgramm #if DEBUG IProtokollWriter protokollWriter = new XMLParser.Functions.ProtokollWriter.HTMLProtkollWriter(headertitles); - XMLParse sers = new XMLParse("2022-01-26_KS_H_L_Oldenburg_Haßforter-Straße.xml"); + XMLParse sers = new XMLParse("2021-11-12_KS_H_L_Oldenburg_Westersteder-Straße.xml"); var d = sers.KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Wasserhaltung != EWasserhaltung.NONE); IUmsatzCalculator calculators = new XMLParser.Functions.UmsatzCalculator.StrassenUmsatz(); calculators.Calculate(protokollWriter, sers.KanalObjekte);