public Flight(FlightSystem flightSystem, Route route, DateTime departureTime) { this.Route = route; this.Airplane = flightSystem.GetAirplane(route); this.DepartureTime = departureTime; this.ArrivalTime = departureTime.AddHours(CalculateTravelTimeHours()); }
//Konstruktor kopiujący do powielania lotów, działa na podobnych zasach co poprzedni, // z tym, że parametrem jest też ilość dni o który chcemy przesunąć lot public Flight(FlightSystem flightSystem, Flight flight, double days) { this.Route = flight.Route; this.DepartureTime = flight.DepartureTime.AddDays(days); this.Airplane = flightSystem.GetAirplane(flight.Route, flight.DepartureTime.AddDays(days)); if (this.Airplane == null) { Console.WriteLine("Nie ma wolnych samolotów na ten typ trasy!"); } this.ArrivalTime = flight.DepartureTime.AddDays(days).AddHours(CalculateTravelTimeHours()); this.ReturnTime = ArrivalTime.AddHours(CalculateTravelTimeHours() + 24); flightSystem.ReturningAirplanes.Add(new ReturningAirplane(this.Airplane, this.ReturnTime)); this.Clients = new List <Client>(); }
//Konstruktor do planowania nowych lotów public Flight(FlightSystem flightSystem, Route route, DateTime departureTime) { this.Route = route; this.DepartureTime = departureTime; //Przypisuje optymalny samolot na podstawie trasy i czasu odlotu, metoda GetAirplane(trasa,czas odlotu)) this.Airplane = flightSystem.GetAirplane(route, departureTime); if (this.Airplane == null) { Console.WriteLine("Nie ma wolnych samolotów na ten typ trasy!"); } //Obliczanie poszczególnych czasów metodą CalculateTravelTimeHours()) this.ArrivalTime = departureTime.AddHours(CalculateTravelTimeHours()); //Dodawanie 24 na odpoczynek pilota this.ReturnTime = ArrivalTime.AddHours(CalculateTravelTimeHours() + 24); //Dodawanie do listy samolotów, które wyleciały flightSystem.ReturningAirplanes.Add(new ReturningAirplane(this.Airplane, this.ReturnTime)); this.Clients = new List <Client>(); }