public void UpdateStations() { var stations = ListOfAllStations.ToArray(); AService.Invoke("SendStationsToClient", stations); repository.UpdateStations(stations); }
public Task <Airplane> SetAirplaneOnStartingStationAsync(Airplane airplane) { List <Station> stations = stations = ListOfAllStations.Where(s => (s.TypeOfStation == (airplane.FlightState == FlightState.Landing ? StationType.StationForLanding : StationType.StationForDeparture) || s.TypeOfStation == StationType.StationForLandingAndDeparture) && s.IsEnterStation).ToList(); return(Task.Run(async() => { while (stations.Any(s => s.Airplane == null) == false) { await Task.Delay(200); } Station station = stations.First(s => s.Airplane == null); station.Airplane = airplane; airplane.AirplaneStatus = AirplaneStatus.Moving; airplane.EnteredStartingStationDateTime = DateTime.Now; Trace.WriteLine($"airplane {airplane.Id} started {(airplane.FlightState == FlightState.Landing ? "Landing" : "Departure")} on station {station.Id}"); return airplane; })); }