From 133bc5f6b09f1b8d57d0f6fa8a2e7047908363eb Mon Sep 17 00:00:00 2001 From: Damian Wessels Date: Fri, 30 Aug 2024 20:40:20 +0200 Subject: [PATCH] Sanierungsystem umgeschrieben --- Schnittstelle/DWA149-2_2013/BAA.cs | 11 +---- Schnittstelle/DWA149-2_2013/BAB.cs | 11 +---- Schnittstelle/DWA149-2_2013/BCA.cs | 7 +-- Schnittstelle/DWA149-2_2013/BCE.cs | 9 +--- Schnittstelle/Export/Excel.cs | 34 ++++++------- .../Import/XML/v2013/Model/RZustand.cs | 6 +-- Schnittstelle/Import/XML/v2013/XML2013.cs | 2 - Schnittstelle/Sanierung/ISanierung.cs | 30 +----------- Schnittstelle/Sanierung/Sanierungart.cs | 48 +++++++++++++++++++ 9 files changed, 71 insertions(+), 87 deletions(-) diff --git a/Schnittstelle/DWA149-2_2013/BAA.cs b/Schnittstelle/DWA149-2_2013/BAA.cs index e26075c..aeb244b 100644 --- a/Schnittstelle/DWA149-2_2013/BAA.cs +++ b/Schnittstelle/DWA149-2_2013/BAA.cs @@ -6,19 +6,12 @@ using System.Text; namespace Schnittstelle.DWA149_2_2013 { - class BAA : CodeBeschreibung, IReparatur, IRenovation + class BAA : CodeBeschreibung { - List reparatur = new List(); - List renovation = new List(); - - public BAA(RZustand kuerzel) : base("Verformung",kuerzel) + public BAA(RZustand kuerzel) : base("Verformung", kuerzel) { CH1.Add("A", "vertikal"); CH1.Add("B", "horizontal"); } - - List IReparatur.Massnahmen => reparatur; - - List IRenovation.Massnahmen => renovation; } } \ No newline at end of file diff --git a/Schnittstelle/DWA149-2_2013/BAB.cs b/Schnittstelle/DWA149-2_2013/BAB.cs index 9a2f0d1..f2fdcb0 100644 --- a/Schnittstelle/DWA149-2_2013/BAB.cs +++ b/Schnittstelle/DWA149-2_2013/BAB.cs @@ -5,10 +5,8 @@ using System.Collections.Generic; namespace Schnittstelle.DWA149_2_2013 { - class BAB : CodeBeschreibung, IReparatur + class BAB : CodeBeschreibung { - List reparatur = new List(); - public BAB(RZustand kuerzel) : base("Rissbildung", kuerzel) { CH1.Add("A", "Oberflächenriss (Haarriss)"); @@ -20,13 +18,6 @@ namespace Schnittstelle.DWA149_2_2013 CH2.Add("C", "komplexe Rissbildung"); CH2.Add("D", "gewundene oder spiralförmige Rissbildung"); CH2.Add("E", "sternförmige Rissbildung"); - - reparatur.Add(new SanierungMassnahme("anfräsen",100,0)); - reparatur.Add(new SanierungMassnahme("kurzliner",200, 0)); } - - List IReparatur.Massnahmen => reparatur; - - } } \ No newline at end of file diff --git a/Schnittstelle/DWA149-2_2013/BCA.cs b/Schnittstelle/DWA149-2_2013/BCA.cs index 5b23de2..65861d2 100644 --- a/Schnittstelle/DWA149-2_2013/BCA.cs +++ b/Schnittstelle/DWA149-2_2013/BCA.cs @@ -4,10 +4,8 @@ using System.Collections.Generic; namespace Schnittstelle.DWA149_2_2013 { - class BCA : CodeBeschreibung, IRenovation + class BCA : CodeBeschreibung { - List renovation = new List(); - public BCA(RZustand kuerzel) : base("Anschluss", kuerzel) { CH1.Add("A", "Abzweig"); @@ -22,9 +20,6 @@ namespace Schnittstelle.DWA149_2_2013 CH2.Add("A", "offen"); CH2.Add("B", "geschlossen"); - renovation.Add(new SanierungMassnahme("Einmessen, Öffnen, Hut", 800, -1)); } - - List IRenovation.Massnahmen => renovation; } } \ No newline at end of file diff --git a/Schnittstelle/DWA149-2_2013/BCE.cs b/Schnittstelle/DWA149-2_2013/BCE.cs index ff83b76..115f360 100644 --- a/Schnittstelle/DWA149-2_2013/BCE.cs +++ b/Schnittstelle/DWA149-2_2013/BCE.cs @@ -4,18 +4,13 @@ using System.Collections.Generic; namespace Schnittstelle.DWA149_2_2013 { - class BCE : CodeBeschreibung, IRenovation + class BCE : CodeBeschreibung { List renovation = new List(); public BCE(RZustand kuerzel) : base("Endknoten", kuerzel) { - renovation.Add(new SanierungMassnahme("Schlauchliner", 100, 200)); - renovation.Add(new SanierungMassnahme("Schlauchliner", 105, 250)); - renovation.Add(new SanierungMassnahme("Schlauchliner", 120, 300)); - renovation.Add(new SanierungMassnahme("Schlauchliner", 130, 400)); - renovation.Add(new SanierungMassnahme("Schlauchliner", 140, 500)); - renovation.Add(new SanierungMassnahme("Schlauchliner", 150, 600)); + } public List Massnahmen => renovation; diff --git a/Schnittstelle/Export/Excel.cs b/Schnittstelle/Export/Excel.cs index 690f1f9..64ee1fc 100644 --- a/Schnittstelle/Export/Excel.cs +++ b/Schnittstelle/Export/Excel.cs @@ -144,13 +144,20 @@ namespace Schnittstelle.Export worksheet.Range[row + j, 7].Text = code.KodeDescription; worksheet.Range[row + j, 8].Text = code.Streckenschaden; - IRenovation renovation = null; - if (code.Renovation is IRenovation) + + List Massnahmen; + + + + if (sanArt.Massnahmen.TryGetValue(code.Inspektionskode, out Massnahmen)) { - List k = code.Renovation.Massnahmen; - SanierungMassnahme s = k.Find(x => haltung.Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite >= x.DN); - worksheet.Range[row + j, 9].Text = s.Beschreibung; - if (s.Beschreibung.Equals("Schlauchliner")) + var imass = Massnahmen.Find(x => + haltung.Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite >= + x.DN); + + worksheet.Range[row + j, 9].Text = imass.Beschreibung; + + if (imass.Beschreibung.Equals("Schlauchliner")) { double zuschlag = 1; double tmpLaenge = Convert.ToDouble(haltung.Stammdaten.Kante.Laenge); @@ -158,24 +165,13 @@ namespace Schnittstelle.Export zuschlag = 1.3; if (tmpLaenge < 15) zuschlag = 1.5; - worksheet.Range[row + j, 10].Number = (s.Kosten*zuschlag) * tmpLaenge; + worksheet.Range[row + j, 10].Number = (imass.Kosten*zuschlag) * tmpLaenge; } else - worksheet.Range[row + j, 10].Number = s.Kosten; - //Debugger.Break(); + worksheet.Range[row + j, 10].Number = imass.Kosten; } - //Debugger.Break(); - - /*Tuple d; - - if (sanArt.Sanierungen.TryGetValue(code.Inspektionskode, out d)) - { - worksheet.Range[row + j, 9].Text = d.Item1; - worksheet.Range[row + j, 10].Number = d.Item2; - } - */ row++; } } diff --git a/Schnittstelle/Import/XML/v2013/Model/RZustand.cs b/Schnittstelle/Import/XML/v2013/Model/RZustand.cs index 70cd909..426dc79 100644 --- a/Schnittstelle/Import/XML/v2013/Model/RZustand.cs +++ b/Schnittstelle/Import/XML/v2013/Model/RZustand.cs @@ -33,9 +33,7 @@ namespace Schnittstelle.Import.XML.v2013.Model string kommentar; Klassifizierung? klassifizierung; string kodeDescription; - IReparatur? reparatur; - IRenovation? renovation; - + public decimal Station { get => station; set => station = value; } public string Inspektionskode { get => inspektionskode; set => inspektionskode = value; } public string Charakterisierung1 { get => charakterisierung1; set => charakterisierung1 = value; } @@ -50,7 +48,5 @@ namespace Schnittstelle.Import.XML.v2013.Model public string Kommentar { get => kommentar; set => kommentar = value; } public Klassifizierung? Klassifizierung { get => klassifizierung; set => klassifizierung = value; } public string KodeDescription { get => kodeDescription; set => kodeDescription = value; } - public IReparatur Reparatur { get => reparatur; set => reparatur = value; } - public IRenovation Renovation { get => renovation; set => renovation = value; } } } diff --git a/Schnittstelle/Import/XML/v2013/XML2013.cs b/Schnittstelle/Import/XML/v2013/XML2013.cs index a1445a2..2e43f1c 100644 --- a/Schnittstelle/Import/XML/v2013/XML2013.cs +++ b/Schnittstelle/Import/XML/v2013/XML2013.cs @@ -331,8 +331,6 @@ namespace Schnittstelle.Import.XML.v2013 ICodeBeschreibung codedescription = factory.GetCodeBeschreibung(rZustand); rZustand.KodeDescription = codedescription.GetBeschreibung; - if (codedescription is IRenovation) rZustand.Renovation = (IRenovation)codedescription; - if(codedescription is IReparatur) rZustand.Reparatur = (IReparatur)codedescription; result.Add(rZustand); } diff --git a/Schnittstelle/Sanierung/ISanierung.cs b/Schnittstelle/Sanierung/ISanierung.cs index e9373a4..e999b59 100644 --- a/Schnittstelle/Sanierung/ISanierung.cs +++ b/Schnittstelle/Sanierung/ISanierung.cs @@ -3,34 +3,6 @@ using System.Collections.Generic; namespace Schnittstelle.Sanierung { - public interface IReparatur - { - List Massnahmen { get; } - } - - public interface IRenovation - { - List Massnahmen { get; } - } - - - - public class SanierungMassnahme - { - string beschreibung = string.Empty; - double kosten = double.MinValue; - int dn = 0; - - public string Beschreibung { get => beschreibung; } - public double Kosten { get => kosten; } - public int DN { get => dn; } - - public SanierungMassnahme(string beschreibung, double kosten, int dn) - { - this.beschreibung = beschreibung; - this.kosten = kosten; - this.dn = dn; - } - } + } diff --git a/Schnittstelle/Sanierung/Sanierungart.cs b/Schnittstelle/Sanierung/Sanierungart.cs index 372d1e8..e93b69a 100644 --- a/Schnittstelle/Sanierung/Sanierungart.cs +++ b/Schnittstelle/Sanierung/Sanierungart.cs @@ -6,11 +6,37 @@ using System.Text; namespace Schnittstelle.Sanierung { + public class SanierungMassnahme + { + private string begrenzung = string.Empty; + string beschreibung = string.Empty; + double kosten = double.MinValue; + int dn = 0; + + public string Beschreibung { get => beschreibung; } + public string Begrenzung { get => begrenzung; } + public double Kosten { get => kosten; } + public int DN { get => dn; } + + public SanierungMassnahme(string beschreibung, double kosten, int dn,string begrenzung = "-:-") + { + this.beschreibung = beschreibung; + this.kosten = kosten; + this.dn = dn; + this.begrenzung = begrenzung; + } + } + public abstract class Sanierungart { string sanierungsbezeichnung = string.Empty; public string Sanierungsbezeichnung { get => sanierungsbezeichnung; } public Dictionary> Sanierungen = new Dictionary>(); + + protected Dictionary> massnahmen = + new Dictionary>(); + + public Dictionary> Massnahmen => massnahmen; public Sanierungart(string art) { sanierungsbezeichnung = art; @@ -28,9 +54,31 @@ namespace Schnittstelle.Sanierung public class Renovation : Sanierungart { + public Renovation() : base("Renovationsverfahren") { + BCE(); + } + + void BCA() + { + List bca = new List(); + bca.Add(new SanierungMassnahme("Einmessen",10,0,"BCA:-:A")); + bca.Add(new SanierungMassnahme("Öffnen",100,0,"BCA:-:A")); + bca.Add(new SanierungMassnahme("Hut",380,0,"BCA:-:A")); + } + void BCE() + { + List bce = new List(); + bce.Add(new SanierungMassnahme("Schlauchliner",100,200)); + bce.Add(new SanierungMassnahme("Schlauchliner",105,250)); + bce.Add(new SanierungMassnahme("Schlauchliner",110,300)); + bce.Add(new SanierungMassnahme("Schlauchliner",120,400)); + bce.Add(new SanierungMassnahme("Schlauchliner",130,500)); + bce.Add(new SanierungMassnahme("Schlauchliner",140,600)); + + massnahmen.Add("BCE", bce); } } }