//verwijderen vlucht als hij te lang wacht public void OnNext(Vlucht value) { if (value.TimeWaiting.Seconds > 5) { this.WachtendeVluchten.Remove(value); } }
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 WachtendeVluchtenNaarBand() { while (Baggagebanden.Any(bb => bb.AantalKoffers == 0) && WachtendeVluchten.Any()) { Baggageband legeBand = Baggagebanden.FirstOrDefault(bb => bb.AantalKoffers == 0); Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); WachtendeVluchten.RemoveAt(0); legeBand.HandelNieuweVluchtAf(volgendeVlucht); } }
public void OnNext(Baggageband value) { if (value.AantalKoffers <= 0 && WachtendeVluchten.Count > 0) { Baggageband legeBand = value; Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); WachtendeVluchten.RemoveAt(0); legeBand.HandelNieuweVluchtAf(volgendeVlucht); } }
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 WachtendeVluchtenNaarBand(Baggageband value) { //while (Baggagebanden.Any(bb => bb.AantalKoffers == 0) && WachtendeVluchten.Any()) //{ // 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. if (value.AantalKoffers == 0 && WachtendeVluchten.Any()) { Baggageband legeBand = value; Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); WachtendeVluchten.RemoveAt(0); legeBand.HandelNieuweVluchtAf(volgendeVlucht); } //} }
public void NieuweInkomendeVlucht(string vertrokkenVanuit, int aantalKoffers) { Vlucht newVlucht = new Vlucht(vertrokkenVanuit, aantalKoffers); Baggageband legeBand = Baggagebanden.FirstOrDefault(b => b.AantalKoffers == 0); newVlucht.Subscribe(this); if (legeBand == null) { WachtendeVluchten.Add(newVlucht); } else { legeBand.HandelNieuweVluchtAf(newVlucht); } }
public void NieuweInkomendeVlucht(string vertrokkenVanuit, int aantalKoffers) { // Het proces moet automatisch gaan, dus als er lege banden zijn moet de vlucht niet in de wachtrij. // Dan moet de vlucht meteen naar die band. var vlucht = new Vlucht(vertrokkenVanuit, aantalKoffers); Baggageband legeBand = Baggagebanden.FirstOrDefault(b => b.AantalKoffers == 0); if (legeBand == null) // Geen lege banden { WachtendeVluchten.Add(vlucht); } else // Er is een lege band { legeBand.HandelNieuweVluchtAf(vlucht); } }
public void HandelNieuweVluchtAf(Vlucht vlucht) { VluchtVertrokkenVanuit = vlucht.VertrokkenVanuit; AantalKoffers = vlucht.AantalKoffers; if (_huidigeVluchtTimer != null) { _huidigeVluchtTimer.Stop(); } _huidigeVluchtTimer = new Timer(); _huidigeVluchtTimer.Interval = (int)((60.0 / _aantalKoffersPerMinuut) * 1000); _huidigeVluchtTimer.Tick += KofferVanBandGehaald; _huidigeVluchtTimer.Start(); Notify(this); }
public void HandelNieuweVluchtAf(Vlucht vlucht) { VluchtVertrokkenVanuit = vlucht.VertrokkenVanuit; AantalKoffers = vlucht.AantalKoffers; if (_huidigeVluchtTimer != null) { _huidigeVluchtTimer.Stop(); } _huidigeVluchtTimer = new Timer(); _huidigeVluchtTimer.Interval = (int)((60.0 / _aantalKoffersPerMinuut) * 1000); _huidigeVluchtTimer.Tick += KofferVanBandGehaald; _huidigeVluchtTimer.Start(); // TODO: We moeten het laten weten dat we een update hebben! }
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. Vlucht flight = new Vlucht(vertrokkenVanuit, aantalKoffers); var emptyBand = Baggagebanden.FirstOrDefault(band => band.AantalKoffers == 0); if (emptyBand == null) { WachtendeVluchten.Add(flight); } else { emptyBand.HandelNieuweVluchtAf(flight); } }
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 vlucht = new Vlucht(vertrokkenVanuit, aantalKoffers); Baggageband legeBand = Baggagebanden.FirstOrDefault(band => band.AantalKoffers == 0); if (legeBand == null) { WachtendeVluchten.Add(vlucht); } else { legeBand.HandelNieuweVluchtAf(vlucht); } }
public void OnNext(Baggageband obj) { if (!(obj is null)) { for (int i = 0; i < Baggagebanden.Count; i++) { if (Baggagebanden[i].Naam == obj.Naam) { if (Baggagebanden[i].AantalKoffers == 0 && WachtendeVluchten.Any()) { Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault(); WachtendeVluchten.RemoveAt(0); Baggagebanden[i].HandelNieuweVluchtAf(volgendeVlucht); } return; } } } }