Beispiel #1
0
        public void UpdateStations()
        {
            var stations = ListOfAllStations.ToArray();

            AService.Invoke("SendStationsToClient", stations);
            repository.UpdateStations(stations);
        }
Beispiel #2
0
        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;
            }));
        }