public void OnNext(Baggageband value) { if (value.AantalKoffers == 0 && WachtendeVluchten.Any()) { Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); WachtendeVluchten.RemoveAt(0); value.HandelNieuweVluchtAf(volgendeVlucht); volgendeVlucht.StopWaiting(); } }
public void OnNext(Baggageband value) { Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); if (volgendeVlucht != null) { volgendeVlucht.StopWaiting(); } WachtendeVluchtenNaarBand(value); }
public void WachtendeVluchtenNaarBand() { // TODO: Straks krijgen we een update van een baggageband. Dan hoeven we alleen maar te kijken of hij leeg is. // Als dat zo is kunnen we vrijwel de hele onderstaande code hergebruiken en hebben we geen while meer nodig. Baggageband legeBand = Baggagebanden.FirstOrDefault(bb => bb.AantalKoffers == 0); Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); if (WachtendeVluchten.Count > 0) { WachtendeVluchten.RemoveAt(0); volgendeVlucht.StopWaiting(); legeBand.HandelNieuweVluchtAf(volgendeVlucht); } }
public void WachtendeVluchtenNaarBand() { Baggageband legeBand = Baggagebanden.FirstOrDefault(bb => bb.AantalKoffers == 0); Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); if (legeBand == null || volgendeVlucht == null) { return; } WachtendeVluchten.RemoveAt(0); volgendeVlucht.StopWaiting(); legeBand.HandelNieuweVluchtAf(volgendeVlucht); }
public void NieuweInkomendeVlucht(string vertrokkenVanuit, int aantalKoffers) { // TODO: Het proces moet straks automatisch gaan, dus als er lege banden zijn moet de vlucht niet in de wachtrij. // Dan moet de vlucht meteen naar die band. // Denk bijvoorbeeld aan: Baggageband legeBand = Baggagebanden.FirstOrDefault(b => b.AantalKoffers == 0); Vlucht nieuweVlucht = new Vlucht(vertrokkenVanuit, aantalKoffers); WachtendeVluchten.Add(nieuweVlucht); Baggageband legeBand = Baggagebanden.FirstOrDefault(bb => bb.AantalKoffers == 0); Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); if (legeBand != null && volgendeVlucht != null) { volgendeVlucht.StopWaiting(); WachtendeVluchten.RemoveAt(0); legeBand.HandelNieuweVluchtAf(volgendeVlucht); } }