Ejemplo n.º 1
0
 //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();
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        public void OnNext(Baggageband value)
        {
            Vlucht volgendeVlucht = WachtendeVluchten.FirstOrDefault();

            if (volgendeVlucht != null)
            {
                volgendeVlucht.StopWaiting();
            }

            WachtendeVluchtenNaarBand(value);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
            }
            //}
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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!
        }
Ejemplo n.º 13
0
        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);
            }
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
 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;
             }
         }
     }
 }