Beispiel #1
0
        /// <summary>
        /// Change the availability of the station.
        /// </summary>
        /// <param name="stationTo">The station the flight has moved to.</param>
        private void ChangeAvailability(Station stationTo)
        {
            Flight flight = CurrentFlight.Flight;

            CurrentFlight.ReadyToContinue -= CurrentFlight_ReadyToContinue;
            CurrentFlight = null;
            FlightChanged?.Invoke(this, new FlightEventArgs(flight, Station, stationTo));
        }
        public void RaiseFlightChanged()
        {
            Flight  flight      = new() { From = "MOCK", To = "MOCK" };
            Station stationFrom = new() { Name = "FromMock" };
            Station stationTo   = new() { Name = "ToMock" };

            FlightChanged?.Invoke(this, new(flight, stationFrom, stationTo));
        }
    }
}
Beispiel #3
0
 public bool FlightArrived(IFlightService flight, bool fromDb = false)
 {
     lock (lockObj)
     {
         if (CurrentFlight is not null)
         {
             logger.LogWarning($"Attempted to push flight {flight.Flight.Id} in a busy station - {Station.Id}.");
             return(false);
         }
         CurrentFlight = flight;
         if (fromDb)
         {
             FlightChanged?.Invoke(this, new(Station.CurrentFlight, Station, Station));
         }
         CurrentFlight.StartWaitingInStationAsync(WaitingTimeMS);
         CurrentFlight.ReadyToContinue += CurrentFlight_ReadyToContinue;
         logger.LogWarning($"Pushed flight {flight.Flight.Id} in to station {Station.Id}.");
         return(true);
     }
 }