Exemplo n.º 1
0
 public void FlightRemove(DTOs.FlightDTO flightDTO)
 {
     lock (this)
     {
         foreach (var cb in callbacks)
         {
             try
             {
                 cb.FlightRemove(flightDTO);
             }
             catch (Exception)
             {
                 callbacks.Remove(cb);
             }
         }
     }
 }
        private Flight GetFlight()
        {
            if (flights.Count == 0)
            {
                return(null);
            }
            DTOs.FlightDTO flightDTO = flights.First();
            Flight         flight    = new Flight()
            {
                ID             = flightDTO.ID,
                State          = (Models.State)Enum.Parse(typeof(Models.State), flightDTO.State.ToString()),
                CurrentStation = null,
                StartRouteTime = flightDTO.StartRouteTime
            };

            flights.Remove(flightDTO);
            CallbacksHolder.Instance().FlightRemove(flightDTO);
            return(flight);
        }
        public bool ScheduleNewFlight(DTOs.FlightDTO flightDTO)
        {
            //add new flight to the db schedule table and get it back with unique id
            DTOs.FlightDTO newFlight   = repo.AddFlightToSchedule(flightDTO);
            DTOs.FlightDTO firstFlight = flights.Count == 0 ? null : flights.First();

            if (newFlight == null)
            {
                return(false);
            }

            if (!flights.Add(newFlight))
            {
                return(false);
            }

            CallbacksHolder.Instance().FlightAdd(newFlight);
            if (firstFlight == null || newFlight.StartRouteTime < firstFlight.StartRouteTime)
            {
                TimeSpan timeUntilNextFlight = GetNextTimeSpan();
                scheduleTimer.Change(timeUntilNextFlight, timeUntilNextFlight);
            }
            return(true);
        }
Exemplo n.º 4
0
 public System.Threading.Tasks.Task <DTOs.FlightDTO> AddFlightToScheduleAsync(DTOs.FlightDTO flight)
 {
     return(base.Channel.AddFlightToScheduleAsync(flight));
 }
Exemplo n.º 5
0
 public DTOs.FlightDTO AddFlightToSchedule(DTOs.FlightDTO flight)
 {
     return(base.Channel.AddFlightToSchedule(flight));
 }
Exemplo n.º 6
0
 public System.Threading.Tasks.Task <bool> ScheduleNewFlightAsync(DTOs.FlightDTO flightDTO)
 {
     return(base.Channel.ScheduleNewFlightAsync(flightDTO));
 }
Exemplo n.º 7
0
 public bool ScheduleNewFlight(DTOs.FlightDTO flightDTO)
 {
     return(base.Channel.ScheduleNewFlight(flightDTO));
 }