html writer hinzugefgt
This commit is contained in:
@@ -3,8 +3,8 @@ using XMLParser.Model;
|
|||||||
|
|
||||||
namespace XMLParser.Contract
|
namespace XMLParser.Contract
|
||||||
{
|
{
|
||||||
public interface ICSVWriter
|
public interface ICSVWriter : IProtokollWriter
|
||||||
{
|
{
|
||||||
void WriteEntry(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
XMLParser.Contract/IProtokollWriter..cs
Normal file
10
XMLParser.Contract/IProtokollWriter..cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using XMLParser.Model;
|
||||||
|
|
||||||
|
namespace XMLParser.Contract
|
||||||
|
{
|
||||||
|
public interface IProtokollWriter
|
||||||
|
{
|
||||||
|
void WriteEntry(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,6 @@ namespace XMLParser.Contract
|
|||||||
{
|
{
|
||||||
public interface IUmsatzCalculator
|
public interface IUmsatzCalculator
|
||||||
{
|
{
|
||||||
void Calculate(ICSVWriter csvWriter,List<KanalObjekt> objekte);
|
void Calculate(IProtokollWriter protokollWriter,List<KanalObjekt> objekte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
74
XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs
Normal file
74
XMLParser.Functions/ProtokollWriter/HTMLProtokollWriter.cs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using XMLParser.Contract;
|
||||||
|
using XMLParser.Model;
|
||||||
|
using System;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace XMLParser.Functions.ProtokollWriter
|
||||||
|
{
|
||||||
|
public class HTMLProtkollWriter : IProtokollWriter
|
||||||
|
{
|
||||||
|
FileStream handle = null;
|
||||||
|
Dictionary<ECalculatedResult,string> headertitles = null;
|
||||||
|
public HTMLProtkollWriter(Dictionary<ECalculatedResult, string> headertitles)
|
||||||
|
{
|
||||||
|
handle = File.Create("./data.html");
|
||||||
|
this.headertitles = headertitles;
|
||||||
|
}
|
||||||
|
internal void writeToFile(string content)
|
||||||
|
{
|
||||||
|
content += Environment.NewLine;
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(content);
|
||||||
|
handle.Write(bytes,0,bytes.Length);
|
||||||
|
handle.Flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeHTMLHeader()
|
||||||
|
{
|
||||||
|
writeToFile("<html>");
|
||||||
|
writeToFile("<head>");
|
||||||
|
writeToFile("</head>");
|
||||||
|
writeToFile("<body>");
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeHTMLFooter()
|
||||||
|
{
|
||||||
|
writeToFile("</body>");
|
||||||
|
writeToFile("</html>");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteEntry(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag)
|
||||||
|
{
|
||||||
|
writeHTMLHeader();
|
||||||
|
|
||||||
|
writeToFile("<table border='2'>");
|
||||||
|
List<ECalculatedResult> avaibleHeaders = new List<ECalculatedResult>();
|
||||||
|
string result = "<tr>";
|
||||||
|
foreach(var s in calculated.Keys)
|
||||||
|
{
|
||||||
|
avaibleHeaders.Add(s);
|
||||||
|
result += "<td>"+calculated[s]+ "</td>";
|
||||||
|
}
|
||||||
|
result += "</tr>";
|
||||||
|
|
||||||
|
makeHeaderTitlesInHtml(avaibleHeaders);
|
||||||
|
writeToFile(result);
|
||||||
|
writeToFile("</table>");
|
||||||
|
writeHTMLFooter();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void makeHeaderTitlesInHtml(List<ECalculatedResult> avaibleHeaders)
|
||||||
|
{
|
||||||
|
writeToFile("<tr>");
|
||||||
|
foreach(ECalculatedResult s in avaibleHeaders)
|
||||||
|
{
|
||||||
|
writeToFile("<td>");
|
||||||
|
writeToFile(headertitles[s]);
|
||||||
|
writeToFile("</td>");
|
||||||
|
}
|
||||||
|
writeToFile("</tr>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,11 +6,11 @@ namespace XMLParser.Functions.UmsatzCalculator
|
|||||||
{
|
{
|
||||||
public class StrassenUmsatz : IUmsatzCalculator
|
public class StrassenUmsatz : IUmsatzCalculator
|
||||||
{
|
{
|
||||||
public void Calculate(ICSVWriter csvWriter, List<KanalObjekt> objekte)
|
public void Calculate(IProtokollWriter protokollWriter, List<KanalObjekt> objekte)
|
||||||
{
|
{
|
||||||
|
|
||||||
Dictionary<ECalculatedResult,decimal> d = XMLParser.Functions.Calculate.CalculateStreet(objekte);
|
Dictionary<ECalculatedResult,decimal> d = XMLParser.Functions.Calculate.CalculateStreet(objekte);
|
||||||
csvWriter.WriteEntry(d,objekte);
|
protokollWriter.WriteEntry(d,objekte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace XMLParser.Functions.UmsatzCalculator
|
|||||||
{
|
{
|
||||||
public class TagesUmsatz : IUmsatzCalculator
|
public class TagesUmsatz : IUmsatzCalculator
|
||||||
{
|
{
|
||||||
public void Calculate(ICSVWriter csvWriter, List<KanalObjekt> objekte)
|
public void Calculate(IProtokollWriter protokollWriter, List<KanalObjekt> objekte)
|
||||||
{
|
{
|
||||||
DirectoryInfo info = new DirectoryInfo("./");
|
DirectoryInfo info = new DirectoryInfo("./");
|
||||||
FileInfo[] daten = info.GetFiles("*.xml");
|
FileInfo[] daten = info.GetFiles("*.xml");
|
||||||
@@ -24,7 +24,7 @@ namespace XMLParser.Functions.UmsatzCalculator
|
|||||||
foreach(string datum in datums) {
|
foreach(string datum in datums) {
|
||||||
List<KanalObjekt> InspektionenAmTag = objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum));
|
List<KanalObjekt> InspektionenAmTag = objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum));
|
||||||
Dictionary<ECalculatedResult,decimal> s = XMLParser.Functions.Calculate.CalculateDay(InspektionenAmTag);
|
Dictionary<ECalculatedResult,decimal> s = XMLParser.Functions.Calculate.CalculateDay(InspektionenAmTag);
|
||||||
csvWriter.WriteEntry(s,InspektionenAmTag);
|
protokollWriter.WriteEntry(s,InspektionenAmTag);
|
||||||
Console.WriteLine("Umsatz am : "+datum + " " + s[ECalculatedResult.GESAMTUMSATZ]);
|
Console.WriteLine("Umsatz am : "+datum + " " + s[ECalculatedResult.GESAMTUMSATZ]);
|
||||||
gesamt +=s[ECalculatedResult.GESAMTUMSATZ];
|
gesamt +=s[ECalculatedResult.GESAMTUMSATZ];
|
||||||
//if(datum.Equals("05.08.2021")) Debugger.Break();
|
//if(datum.Equals("05.08.2021")) Debugger.Break();
|
||||||
|
|||||||
@@ -14,13 +14,25 @@ namespace XMLProgramm
|
|||||||
{
|
{
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
Dictionary<ECalculatedResult,string> headertitles = new Dictionary<ECalculatedResult, string>();
|
||||||
ICSVWriter csvWriter = new StrassenUmsatzCSVWriter();
|
headertitles.Add(ECalculatedResult.DN300DN400, "DN300 - DN400 [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.DN450DN600, "DN450 - DN600 [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.DN650DN800, "DN650 - DN800 [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.DN850DN1000,"DN850 - DN1000 [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.GESAMTHAUPTKANAL,"Hauptkanal Gesamt [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.STRASSENABLAUFANZAHL, "Straßenablauf [Stk]");
|
||||||
|
headertitles.Add(ECalculatedResult.STRASSENABLAUFLAENGEZULAGEMETER,"Straßenablauf > 5m [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.SONSTIGEANZAHL,"Anschlussleitung [Stk]");
|
||||||
|
headertitles.Add(ECalculatedResult.SONSTIGELAENGEZULAGEMETER,"Anschlussleitung > 7m [m]");
|
||||||
|
headertitles.Add(ECalculatedResult.DN150DN250, "DN150 - DN250 [m]");
|
||||||
|
|
||||||
|
|
||||||
|
//ICSVWriter csvWriter = new StrassenUmsatzCSVWriter();
|
||||||
|
IProtokollWriter protokollWriter = new XMLParser.Functions.ProtokollWriter.HTMLProtkollWriter(headertitles);
|
||||||
XMLParse ser = new XMLParse("2021-07-29_KR_H_L_Oldenburg_Eichenstraße.xml");
|
XMLParse ser = new XMLParse("2021-07-29_KR_H_L_Oldenburg_Eichenstraße.xml");
|
||||||
|
|
||||||
IUmsatzCalculator calculator = new XMLParser.Functions.UmsatzCalculator.StrassenUmsatz();
|
IUmsatzCalculator calculator = new XMLParser.Functions.UmsatzCalculator.StrassenUmsatz();
|
||||||
calculator.Calculate(csvWriter,ser.KanalObjekte);
|
calculator.Calculate(protokollWriter,ser.KanalObjekte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user