MH x Claude: Optimierung der Dienstsuche zur Pausenberechnung
This commit is contained in:
@@ -85,23 +85,30 @@ namespace BS.Shared.DataContracts
|
||||
return dauer > 0 ? dauer : 0;
|
||||
}
|
||||
|
||||
// Claude: Überladung, die den Dienst anhand der DienstOid aus einer Liste sucht (unbekannte Oid => kein Abzug)
|
||||
public static double DauerAbzueglichPause(double dauerInStunden, long dienstOid, IEnumerable<DienstInfoDC> dienste)
|
||||
// Claude: Überladung mit Dictionary (DienstOid => Dienst) für schnelle Lookups in Schleifen (unbekannte Oid => kein Abzug)
|
||||
public static double DauerAbzueglichPause(double dauerInStunden, long dienstOid, IDictionary<long, DienstInfoDC> dienstProOid)
|
||||
{
|
||||
DienstInfoDC dienst = null;
|
||||
if (dienstProOid != null)
|
||||
dienstProOid.TryGetValue(dienstOid, out dienst);
|
||||
|
||||
return DauerAbzueglichPause(dauerInStunden, dienst);
|
||||
}
|
||||
|
||||
// Claude: Baut das Lookup-Dictionary für die Überladung oben einmalig auf
|
||||
public static Dictionary<long, DienstInfoDC> BuildDienstProOidDictionary(IEnumerable<DienstInfoDC> dienste)
|
||||
{
|
||||
var dict = new Dictionary<long, DienstInfoDC>();
|
||||
if (dienste != null)
|
||||
{
|
||||
foreach (var d in dienste)
|
||||
{
|
||||
if (d != null && d.Oid == dienstOid)
|
||||
{
|
||||
dienst = d;
|
||||
break;
|
||||
}
|
||||
if (d != null && d.Oid.HasValue && !dict.ContainsKey(d.Oid.Value))
|
||||
dict.Add(d.Oid.Value, d);
|
||||
}
|
||||
}
|
||||
|
||||
return DauerAbzueglichPause(dauerInStunden, dienst);
|
||||
return dict;
|
||||
}
|
||||
|
||||
public string DarstellungInPopUp
|
||||
|
||||
Reference in New Issue
Block a user