Exemple #1
0
 /// <summary>
 /// Weist dem Vorgang SEZ = FEZ zu falls dieser ein Endvorgang ist. Andernfalls wird die kleinste späteste Anfangszeit aller Nachfolger für diesen Wert verwendet.
 /// Setzt die früheste Endzeit aus der Dauer und der frühesten Anfangszeit zusammen.
 /// </summary>
 /// <param name="v">Zu verarbeitender Vorgang.</param>
 private void KalkRueckwaerts(Vorgang v)
 {
     if (v.isEnd)
     {
         v.SEZ = v.FEZ;
     }
     else
     {
         v.SEZ = v.Nachfolger(Repo).OrderBy(o => o.SAZ).ToList().First().SAZ;
     }
     v.SAZ = v.SEZ - v.Dauer;
     foreach (var vo in v.Vorgaenger(Repo))
     {
         KalkRueckwaerts(vo);
     }
 }
Exemple #2
0
 /// <summary>
 /// Weist dem Vorgang FAZ = 0 zu falls dieser ein Startvorgang ist. Andernfalls wird die größte früheste Endzeit aller Vorgänger für diesen Wert verwendet.
 /// Setzt die früheste Endzeit aus der Dauer und der frühesten Anfangszeit zusammen.
 /// </summary>
 /// <param name="v">Zu verarbeitender Vorgang.</param>
 private void KalkVorwaerts(Vorgang v)
 {
     if (v.isStart)
     {
         v.FAZ = 0;
     }
     else
     {
         v.FAZ = v.Vorgaenger(Repo).OrderByDescending(o => o.FEZ).ToList().First().FEZ;
     }
     v.FEZ = v.FAZ + v.Dauer;
     foreach (var n in v.Nachfolger(Repo))
     {
         KalkVorwaerts(n);
     }
 }