Klassifizierungssystem hinzugefügt

This commit is contained in:
2023-09-13 12:56:39 +02:00
parent 49ab3598d7
commit bfa77de720
42 changed files with 886 additions and 112 deletions

View File

@@ -0,0 +1,62 @@
using dcnsanplanung.bewertung.M149_3;
using System.Diagnostics;
namespace dcnsanplanung.bewertung
{
public static class BewM149
{
// input Kürzel
public static Dictionary<string, int> Klassifiziere(string hauptcode, string ch1, string ch2, string q1, string q2, int dn)
{
AbstractCode? abstractCode = null;
Dictionary<string,int> result = new Dictionary<string,int>();
switch(hauptcode)
{
case "BAA": abstractCode = new BAA(EGeltungsbereich.biegesteif); break;
case "BAB": abstractCode = new BAB(); break;
case "BAC": abstractCode = new BAC(); break;
case "BAD": abstractCode = new BAD(); break;
case "BAE": abstractCode = new BAE(); break;
case "BAF": abstractCode = new BAF(); break;
case "BAG": abstractCode = new BAG(dn); break;
case "BAH": abstractCode = new BAH(); break;
case "BAI": abstractCode = new BAI(); break;
case "BAJ": abstractCode = new BAJ(); break;
case "BAK": abstractCode = new BAK(); break;
case "BAL": abstractCode = new BAL(); break;
case "BAM": abstractCode = new BAM(); break;
case "BAN": abstractCode = new BAN(); break;
case "BAO": abstractCode = new BAO(); break;
case "BAP": abstractCode = new BAP(); break;
case "BBA": abstractCode = new BBA(); break;
case "BBB": abstractCode = new BBB(); break;
case "BBC": abstractCode = new BBC(); break;
case "BBD": abstractCode = new BBD(); break;
case "BBE": abstractCode = new BBE(); break;
case "BBF": abstractCode = new BBF(); break;
case "BBG": abstractCode = new BBG(); break;
case "BBH": abstractCode = new BBH(); break;
case "BDB": abstractCode = new BDB(); break;
case "BDE": abstractCode = new BDE(); break;
}
if (abstractCode == null) return result;
abstractCode.WriteCH1(ch1);
abstractCode.WriteCH2(ch2);
float _q1 = float.Parse(q1);
//float _q2 = float.Parse(q2);
abstractCode.WriteQ1(_q1);
//abstractCode.WriteQ2(_q2);
result.Add("D", abstractCode.CalculateDK());
result.Add("B", abstractCode.CalculateBK());
result.Add("S", abstractCode.CalculateSK());
return result;
}
}
}

View File

@@ -1,7 +0,0 @@
namespace dcnsanplanung.bewertung
{
public class Class1
{
}
}

View File

@@ -0,0 +1,49 @@
namespace dcnsanplanung.bewertung.M149_3
{
public abstract class AbstractCode
{
string beschreibung;
protected string Ch1 = "";
protected string Ch2 = "";
protected float Q1;
protected float Q2;
protected int DN;
public AbstractCode(string beschreibung, int DN = -1)
{
this.beschreibung = beschreibung;
}
public virtual int CalculateSK()
{
return 5;
}
public virtual int CalculateDK()
{
return 5;
}
public virtual int CalculateBK()
{
return 5;
}
public virtual void WriteCH1(string Ch1)
{
this.Ch1 = Ch1;
}
public virtual void WriteCH2(string Ch2)
{
this.Ch2 = Ch2;
}
public virtual void WriteQ1(float Q1)
{
this.Q1 = Q1;
}
public virtual void WriteQ2(float Q2)
{
this.Q2 = Q2;
}
}
}

View File

@@ -5,79 +5,19 @@ using System.Text;
namespace dcnsanplanung.bewertung.M149_3
{
public enum CalculateMethods
{
Dichtheit = 1,
Standsicherheit = 2,
Betriebsicherheit = 4
}
public enum Geltungsbereich
{
biegesteif,
biegeweich
}
public abstract class AbstractCode
{
private CalculateMethods VerfügbareMethoden;
string beschreibung;
protected string Ch1 = "";
protected string Ch2 = "";
protected float Q1;
protected float Q2;
protected int DN;
public AbstractCode(string beschreibung, CalculateMethods calculateMethods, int DN = -1)
{
this.beschreibung = beschreibung;
this.VerfügbareMethoden = calculateMethods;
}
protected virtual int CalculateSK()
{
return 6;
}
protected virtual int CalculateDK()
{
return 6;
}
protected virtual int CalculateBK()
{
return 6;
}
public virtual void WriteCH1(string Ch1)
{
this.Ch1 = Ch1;
}
public virtual void WriteCH2(string Ch2)
{
this.Ch2 = Ch2;
}
public virtual void WriteQ1(float Q1)
{
this.Q1 = Q1;
}
public virtual void WriteQ2(float Q2)
{
this.Q2 = Q2;
}
}
public class BAA : AbstractCode
{
Geltungsbereich geltungsbereich;
public BAA(Geltungsbereich geltungsbereich) : base("Verformung", CalculateMethods.Standsicherheit | CalculateMethods.Betriebsicherheit)
EGeltungsbereich geltungsbereich;
public BAA(EGeltungsbereich geltungsbereich) : base("Verformung")
{
this.geltungsbereich = geltungsbereich;
}
protected override int CalculateSK()
public override int CalculateSK()
{
switch(geltungsbereich)
{
case Geltungsbereich.biegesteif:
case EGeltungsbereich.biegesteif:
{
switch (Q1)
{
@@ -88,7 +28,7 @@ namespace dcnsanplanung.bewertung.M149_3
default: return 4;
}
}
case Geltungsbereich.biegeweich:
case EGeltungsbereich.biegeweich:
{
switch (Q1)
{
@@ -103,7 +43,7 @@ namespace dcnsanplanung.bewertung.M149_3
default: return 6;
}
}
protected override int CalculateBK()
public override int CalculateBK()
{
switch(Q1)
{

View File

@@ -2,11 +2,11 @@
{
public class BAB : AbstractCode
{
public BAB() : base("Rissbildung", CalculateMethods.Standsicherheit | CalculateMethods.Dichtheit)
public BAB() : base("Rissbildung")
{
}
protected override int CalculateDK()
public override int CalculateDK()
{
switch(Ch1)
{
@@ -33,10 +33,10 @@
break;
}
return 10;
return 5;
}
protected override int CalculateSK()
public override int CalculateSK()
{
switch(Ch1)
{

View File

@@ -2,20 +2,20 @@
{
public class BAC : AbstractCode
{
public BAC() : base("Rohrbruch", CalculateMethods.Dichtheit | CalculateMethods.Standsicherheit | CalculateMethods.Betriebsicherheit)
public BAC() : base("Rohrbruch")
{
}
protected override int CalculateBK()
public override int CalculateBK()
{
switch (Ch1)
{
case "A": return 7;
case "C": return 0;
}
return 10;
return 5;
}
protected override int CalculateSK()
public override int CalculateSK()
{
switch(Ch1)
{
@@ -24,7 +24,7 @@
default: return 0;
}
}
protected override int CalculateDK()
public override int CalculateDK()
{
switch (Ch1)
{

View File

@@ -2,7 +2,7 @@
{
public class BAD : AbstractCode
{
public BAD() : base("Defektes Mauerwerk", CalculateMethods.Dichtheit | CalculateMethods.Standsicherheit | CalculateMethods.Betriebsicherheit)
public BAD() : base("Defektes Mauerwerk")
{
throw new NotImplementedException();
}

View File

@@ -2,7 +2,7 @@
{
public class BAE : AbstractCode
{
public BAE() : base("Fehlender Mörtel", CalculateMethods.Dichtheit | CalculateMethods.Standsicherheit)
public BAE() : base("Fehlender Mörtel")
{
throw new NotImplementedException();
}

View File

@@ -2,9 +2,43 @@
{
public class BAF : AbstractCode
{
public BAF() : base("Oberflächenschaden", CalculateMethods.Dichtheit | CalculateMethods.Standsicherheit | CalculateMethods.Betriebsicherheit)
public BAF() : base("Oberflächenschaden")
{
throw new NotImplementedException();
}
public override int CalculateBK()
{
if (Ch1.Equals("K")) return 3;
return 4;
}
public override int CalculateDK()
{
switch(Ch1)
{
case "I": return 1;
case "Z": return 7;
default: return 5;
}
}
public override int CalculateSK()
{
switch(Ch1)
{
case "A": return 4;
case "B":
case "C": return 3;
case "D": return 2;
case "E": return 1;
case "F": return 3;
case "G": return 2;
case "H": return 1;
case "I":
case "J":
case "Z": return 7;
default: return 5;
}
}
}
}

View File

@@ -2,9 +2,55 @@
{
public class BAG : AbstractCode
{
public BAG() : base("Einragender Anschluss", CalculateMethods.Betriebsicherheit)
public BAG(int DN) : base("Einragender Anschluss", DN)
{
throw new NotImplementedException ();
this.DN = DN;
}
public override int CalculateBK()
{
switch(DN)
{
case <= 250:
{
switch(Q1)
{
case >= 50: return 0;
case >= 30: return 1;
case >= 20: return 2;
case >= 10: return 3;
default: return 4;
}
}
case <= 500:
{
switch(Q1)
{
case >= 80: return 0;
case >= 60: return 1;
case >= 40: return 2;
case >= 10: return 3;
default: return 4;
}
}
case <= 800:
{
switch(Q1)
{
case >= 70: return 2;
case <= 10: return 3;
default: return 4;
}
}
default:
{
switch(Q1)
{
case >= 30: return 3;
default: return 4;
}
}
}
}
}
}

View File

@@ -2,9 +2,27 @@
{
public class BAH : AbstractCode
{
public BAH() : base("Schadhafter Anschluss", CalculateMethods.Dichtheit | CalculateMethods.Standsicherheit | CalculateMethods.Betriebsicherheit)
public BAH() : base("Schadhafter Anschluss")
{
throw new NotImplementedException () ;
}
public override int CalculateDK()
{
switch(Ch1)
{
case "B":
case "C":
case "D": return 2;
case "Z": return 7;
default: return 5;
}
}
public override int CalculateSK()
{
if (Ch1.Equals("Z")) return 7;
return 5;
}
}
}

View File

@@ -2,9 +2,32 @@
{
public class BAI : AbstractCode
{
public BAI() : base("Einragendes Dichtungsmaterial", CalculateMethods.Dichtheit | CalculateMethods.Betriebsicherheit)
public BAI() : base("Einragendes Dichtungsmaterial")
{
throw new NotImplementedException () ;
}
public override int CalculateDK()
{
return 2;
}
public override int CalculateBK()
{
if(Ch1.Equals("A"))
{
if (Ch2.Equals("A")) return 4;
return 3;
}
switch(Q1)
{
case >= 50: return 0;
case >= 35: return 1;
case >= 20: return 2;
case >= 5: return 3;
default: return 4;
}
}
}
}

View File

@@ -0,0 +1,117 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAJ : AbstractCode
{
public BAJ(int DN = -1) : base("Verschobene Verbindung", DN)
{
}
public override int CalculateDK()
{
switch (Ch1)
{
case "A":
{
switch (DN)
{
case <= 400:
{
switch (Q1)
{
case >= 70: return 0;
case >= 50: return 1;
case >= 30: return 2;
case >= 20: return 3;
default: return 4;
}
}
case <= 800:
{
switch (Q1)
{
case >= 80: return 0;
case >= 60: return 1;
case >= 40: return 2;
case >= 20: return 3;
default: return 4;
}
}
default:
{
switch (Q1)
{
case >= 90: return 0;
case >= 65: return 1;
case >= 40: return 2;
case >= 20: return 3;
default: return 4;
}
}
}
}
case "B":
{
switch (Q1)
{
case >= 30: return 0;
case >= 20: return 1;
case >= 15: return 2;
case >= 10: return 3;
default: return 4;
}
}
default:
{
switch (DN)
{
case <= 200:
{
switch (Q1)
{
case >= 12: return 0;
case >= 9: return 1;
case >= 7: return 2;
case >= 5: return 3;
default: return 4;
}
}
case <= 500:
{
switch (Q1)
{
case >= 6: return 0;
case >= 4: return 1;
case >= 3: return 2;
case >= 2: return 3;
default: return 4;
}
}
default:
{
switch (Q1)
{
case >= 6: return 0;
case >= 4: return 1;
case >= 3: return 2;
case >= 1: return 3;
default: return 4;
}
}
}
}
}
}
public override int CalculateSK()
{
return 4;
}
public override int CalculateBK()
{
if (Ch1.Equals("B")) return 7;
return 5;
}
}
}

View File

@@ -0,0 +1,12 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAK : AbstractCode
{
public BAK() : base("Feststellung der Innenauskleidung")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,12 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAL : AbstractCode
{
public BAL() : base("Schadhafte Reparatur")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,12 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAM : AbstractCode
{
public BAM() : base("Schadhafte Schweißnaht")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,12 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAN : AbstractCode
{
public BAN() : base("Poröses Rohr")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,22 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAO : AbstractCode
{
public BAO() : base("Boden sichtbar")
{
}
public override int CalculateDK()
{
return 1;
}
public override int CalculateSK()
{
return 1;
}
}
}

View File

@@ -0,0 +1,21 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BAP : AbstractCode
{
public BAP() : base("Hohlraum sichtbar")
{
}
public override int CalculateDK()
{
return 1;
}
public override int CalculateSK()
{
return 0;
}
}
}

View File

@@ -0,0 +1,24 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBA : AbstractCode
{
public BBA() : base("Wurzeln")
{
}
public override int CalculateDK()
{
return 2;
}
public override int CalculateBK()
{
switch(Q1)
{
case >= 30: return 0;
case >= 20: return 1;
case >= 10: return 2;
default: return 3;
}
}
}
}

View File

@@ -0,0 +1,29 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBB : AbstractCode
{
public BBB() : base("Anhaftende Stoffe")
{
}
public override int CalculateDK()
{
if (Ch1.Equals("A")) return 3;
return 5;
}
public override int CalculateBK()
{
switch(Q1)
{
case >= 30: return 0;
case >= 20: return 1;
case >= 10: return 2;
case >= 5: return 3;
default: return 4;
}
}
}
}

View File

@@ -0,0 +1,31 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBC : AbstractCode
{
public BBC() : base("Ablagerungen")
{
}
public override int CalculateBK()
{
switch(Ch1)
{
case "C":
case "Z":
{
switch(Q1)
{
case >= 50: return 0;
case >= 40: return 1;
case >= 25: return 2;
case >= 10: return 3;
default: return 4;
}
}
default: return 4;
}
}
}
}

View File

@@ -0,0 +1,32 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBD : AbstractCode
{
public BBD() : base("Eindringen von Bodenmaterial")
{
}
public override int CalculateDK()
{
return 1;
}
public override int CalculateSK()
{
return 0;
}
public override int CalculateBK()
{
switch(Q1)
{
case >= 30: return 0;
case >= 20: return 1;
case >= 10: return 2;
default: return 3;
}
}
}
}

View File

@@ -0,0 +1,11 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBE : AbstractCode
{
public BBE() : base("Andere Hindernisse")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,37 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBF : AbstractCode
{
public BBF() : base("Infiltration")
{
}
public override int CalculateDK()
{
switch(Ch1)
{
case "A": return 2;
default: return 1;
}
}
public override int CalculateSK()
{
switch(Ch1)
{
case "A": return 3;
case "B":
case "C": return 2;
default: return 1;
}
}
public override int CalculateBK()
{
if (Ch1.Equals("A")) return 4;
return 3;
}
}
}

View File

@@ -0,0 +1,11 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBG : AbstractCode
{
public BBG() : base("Exfiltration")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,11 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BBH : AbstractCode
{
public BBH() : base("Ungeziefer")
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,20 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BDB : AbstractCode
{
public BDB() : base("Sonderfälle")
{
}
public override int CalculateBK()
{
return 7;
}
public override int CalculateDK()
{
return 7;
}
}
}

View File

@@ -0,0 +1,20 @@
namespace dcnsanplanung.bewertung.M149_3
{
public class BDE : AbstractCode
{
public BDE() : base("Zufluss aus einem Anschluss")
{
}
public override int CalculateBK()
{
switch(Ch2)
{
case "A": return 1;
default: return 2;
}
}
}
}

View File

@@ -0,0 +1,9 @@
namespace dcnsanplanung.bewertung.M149_3
{
public enum ECalculateMethods
{
Dichtheit = 1,
Standsicherheit = 2,
Betriebsicherheit = 4
}
}

View File

@@ -0,0 +1,8 @@
namespace dcnsanplanung.bewertung.M149_3
{
public enum EGeltungsbereich
{
biegesteif,
biegeweich
}
}