Bewertung weitergeschrieben
This commit is contained in:
@@ -1,12 +1,75 @@
|
||||
using dcnsanplanung.bewertung.M149_3;
|
||||
using dcnsanplanung.shared.Model;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace dcnsanplanung.bewertung
|
||||
{
|
||||
public static class BewM149
|
||||
{
|
||||
|
||||
// input Kürzel
|
||||
|
||||
public static Dictionary<int, int> StartWert = new Dictionary<int, int>()
|
||||
{
|
||||
{0,400 },
|
||||
{1,300 },
|
||||
{2,200 },
|
||||
{3,100 },
|
||||
{4,0 },
|
||||
{5,0 }
|
||||
};
|
||||
|
||||
public static float SXj(int sk,float length)
|
||||
{
|
||||
return (5 - sk) * length;
|
||||
}
|
||||
|
||||
public static Dictionary<string, int> ObjektKlasse(List<Schaden> schaeden)
|
||||
{
|
||||
Dictionary<string, int> result = new Dictionary<string, int>();
|
||||
|
||||
result.Add("B", schaeden.Select(x => x.KB).Min());
|
||||
result.Add("D", schaeden.Select(x => x.KD).Min());
|
||||
result.Add("S", schaeden.Select(x => x.KS).Min());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void CalculateHaltung(Haltung haltung)
|
||||
{
|
||||
var k = ObjektKlasse(haltung.Kodierungen);
|
||||
|
||||
foreach (var schaden in haltung.Kodierungen)
|
||||
{
|
||||
schaden.KBj = SXj(schaden.KB, 2.5f);
|
||||
schaden.KDj = SXj(schaden.KD, 2.5f);
|
||||
schaden.KSj = SXj(schaden.KS, 2.5f);
|
||||
}
|
||||
|
||||
float Haltungslaenge = (float)haltung.Kodierungen.Select(x => x.Entfernung).Max();
|
||||
|
||||
float KBSumme = haltung.Kodierungen.Select(x => x.KBj).Sum();
|
||||
float KSSumme = haltung.Kodierungen.Select(x => x.KSj).Sum();
|
||||
float KDSumme = haltung.Kodierungen.Select(x => x.KDj).Sum();
|
||||
|
||||
float ObjektDSumme = SXj(k["D"],Haltungslaenge);
|
||||
float ObjektSSumme = SXj(k["S"],Haltungslaenge);
|
||||
float ObjektBSumme = SXj(k["B"],Haltungslaenge);
|
||||
|
||||
float SchadensDichteD = KDSumme / ObjektDSumme;
|
||||
float SchadensDichteS = KSSumme / ObjektSSumme;
|
||||
float SchadensDichteB = KBSumme / ObjektBSumme;
|
||||
|
||||
float zuschlagD = 50 * SchadensDichteD;
|
||||
float zuschlagS = 50 * SchadensDichteS;
|
||||
float zuschlagB = 50 * SchadensDichteB;
|
||||
|
||||
int startWertD = StartWert[k["D"]];
|
||||
int startWertB = StartWert[k["B"]];
|
||||
int startWertS = StartWert[k["S"]];
|
||||
|
||||
int ZustandPunkteD = startWertD + (int)zuschlagD;
|
||||
int ZustandPunkteB = startWertB + (int)zuschlagB;
|
||||
int ZustandPunkteS = startWertS + (int)zuschlagS;
|
||||
}
|
||||
public static Dictionary<string, int> Klassifiziere(string hauptcode, string ch1, string ch2, string q1, string q2, int dn)
|
||||
{
|
||||
AbstractCode? abstractCode = null;
|
||||
|
||||
@@ -6,4 +6,8 @@
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\dcnsanplanung.shared\dcnsanplanung.shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user