/// <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)); } } }
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); } }