public override void Execute(List <Event> scheduler, BloodStore bloodStorage, PatientQueue patientQ) { _type = "BT"; int time = BUnits == 1 ? 500 : 300; // lambda statemenet N and Q are connect with T1 and T2 for (int i = 0; i < BUnits; i++) { bloodStorage.BloodLevel++; bloodStorage.BloodStorageList.Add(new Blood(time)); Utilisation temp = new Utilisation(SystemTime + time, "aUT"); AddToScheduler(scheduler, temp); // Adds time of utilisation of Blood if (_flagEmergency == true) // Enables to return exactly right units of blood from Emergency { temp.BloodFromEmergency = true; } } BloodStore.Sorted(bloodStorage.BloodStorageList); Sorted(scheduler); if (time == 300) { BloodStore.OrderFlag = false; } // Setting right flags (makes NewOrder available) else { BloodStore.EmergencyFlag = false; } // Makes EmergencyOrder available }
public override void Execute(List <Event> scheduler, BloodStore bloodStorage, PatientQueue patientQ) { Type = "ND"; int time = Rnd.Next(11, 21); // Gets this from generator time = SystemTime + time; Console.WriteLine("\n### NEW DONNOR ###"); Blood.AddBlood(bloodStorage.BloodStorageList, time); // Adds Blood to the Storage BloodStore.Sorted(bloodStorage.BloodStorageList); AddToScheduler(scheduler, new BloodSupply(SystemTime + time, "TR", 1, false)); // Adds Transport with Blood which will arrive AddToScheduler(scheduler, new NewDonnor(SystemTime + time, "ND")); // Planning new Donnor Event Sorted(scheduler); }