Beispieldaten hinzugefügt

This commit is contained in:
HuskyTeufel
2021-08-06 02:32:29 +02:00
parent a8ac043db0
commit 9c06402310
9 changed files with 58454 additions and 35 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14927
KS_Oldenburg_Heideweg.xml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO;
using System.Linq; using System.Linq;
using XMLParser; using XMLParser;
@@ -8,44 +9,92 @@ namespace XMLProgramm
{ {
class Program class Program
{ {
static Dictionary<string,decimal> CalculateDay(List<KanalObjekt> inspektionen)
{
Dictionary<string,decimal> result = new Dictionary<string, decimal>();
decimal HauptkanalLaenge =0.0m;
inspektionen
.FindAll(s => s.Inspektionsdaten.Anlagentyp.Equals(EAnlagetyp.Haltung))
.ForEach(g => HauptkanalLaenge += g.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge);
List<KanalObjekt> Anschlussleitungen = inspektionen.FindAll(x => x.Inspektionsdaten.Anlagentyp.Equals(EAnlagetyp.Anschlussleitung));
List<KanalObjekt> SEs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
List<KanalObjekt> SOs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && !x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
foreach(KanalObjekt s in SEs) {
Anschlussleitungen.Remove(s);
}
foreach(KanalObjekt s in SOs) {
Anschlussleitungen.Remove(s);
}
SOs.AddRange(Anschlussleitungen);
result.Add("StraßenablaufCount",SEs.Count);
result.Add("SontigeCount",SOs.Count);
decimal SEPauschal = 34.00m * SEs.Count;
decimal SOPauschal = 45.00m * SOs.Count;
decimal HauptkanalPreis = 1.60m * HauptkanalLaenge;
result.Add("StraßenablaufPauschal",SEPauschal);
result.Add("SonstigesPauschal",SOPauschal);
result.Add("HauptkanalPreis",HauptkanalPreis);
decimal SEOverlength = 0.0m;
// SE preise
foreach(KanalObjekt Strassenablauf in SEs) {
decimal length = Strassenablauf.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
if(length > 5.0m) {
SEOverlength += length - 5.0m;
}
}
decimal SOOverlength = 0.0m;
// SO preise
foreach(KanalObjekt Sonstige in SOs) {
decimal length = Sonstige.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
if(length > 7.0m) {
SOOverlength += length - 7.0m;
}
}
decimal LeitungOverlength = SEOverlength + SOOverlength;
decimal LeitungsOverlengthPreis = LeitungOverlength * 2.4m;
result.Add("LeitungÜberlaenge",LeitungOverlength);
result.Add("PreisLeitung",LeitungsOverlengthPreis);
result.Add("Umsatz",(LeitungsOverlengthPreis + HauptkanalPreis + SEPauschal + SOPauschal));
return result;
}
static void Main(string[] args) static void Main(string[] args)
{ {
XMLParse ser = new XMLParse("input.xml"); List<KanalObjekt> objekte = new List<KanalObjekt>();
IEnumerable<string> datums = ser.KanalObjekte.Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct(); DirectoryInfo info = new DirectoryInfo("./");
foreach(string datum in datums) { FileInfo[] daten = info.GetFiles("*.xml");
Console.WriteLine("Folgende Datums sind erfasst worden : "+datum); foreach(FileInfo aktuell in daten) {
List<KanalObjekt> inspektionen = ser.KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum)); XMLParse ser = new XMLParse(aktuell.FullName);
int counter = 0; objekte.AddRange(ser.KanalObjekte);
foreach(KanalObjekt s in inspektionen) {
counter++;
decimal length = s.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
Console.Write(s.Stammdaten.Objektbezeichnung+ " "+length);
//if(s.Stammdaten.Objektbezeichnung.Equals("45893017")) Debugger.Break();
if(s.Inspektionsdaten.Anlagentyp.Equals(EAnlagetyp.Anschlussleitung)) {
if(s.Stammdaten.Knoten != null && s.Stammdaten.Knoten.Anschlusspunkt != null && s.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE")) {
// 45903556RS07 ist anschlusspunkt => null, denn es ist einen Schacht
if(length > 5.0m) {
Console.Write(" Straßenablauf ");
decimal overlength = length - 5.0m;
Console.Write("# Over : "+overlength);
}
}
else {
if(length > 7.0m) {
Console.Write(" Sonstiges ");
decimal overlength = length - 7.0m;
Console.Write("# Over : "+overlength);
}
}
}
Console.WriteLine();
}
Console.WriteLine(counter);
counter = 0;
Console.WriteLine("####");
} }
//XMLParse ser = new XMLParse("KS_Oldenburg_Heideweg.xml");
//objekte.AddRange(ser.KanalObjekte);
//objekte = objekte.OrderBy(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum);
IEnumerable<string> datums = objekte.OrderBy(d => d.Inspektionsdaten.OptischeInspektion.Inspektionstime).Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct();
decimal gesamt = 0.0m;
//Dictionary<string,decimal> s = CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("05.08.2021")));
foreach(string datum in datums) {
Dictionary<string,decimal> s = CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum)));
Console.WriteLine("Umsatz am : "+datum + " " + s["Umsatz"]);
gesamt +=s["Umsatz"];
//if(datum.Equals("05.08.2021")) Debugger.Break();
}
Console.WriteLine("Durchschnitt : "+gesamt / datums.Count());
} }
} }
} }