Code umstrukturierung
Test geschrieben funktioniert mit eichenstraße
This commit is contained in:
@@ -9,67 +9,7 @@ namespace XMLProgramm
|
||||
{
|
||||
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)
|
||||
{
|
||||
List<KanalObjekt> objekte = new List<KanalObjekt>();
|
||||
@@ -88,7 +28,7 @@ namespace XMLProgramm
|
||||
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)));
|
||||
Dictionary<string,decimal> s = Calculate.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();
|
||||
|
||||
Reference in New Issue
Block a user