/// <summary> /// Podstawowy konstruktor do lotu pojedynczego /// </summary> public Lot(string ID, Trasa _Droga, DateTime DataWylotu, Boolean _CZyMawracac, Samolot MaszynaObslugujaca, TypSamolotu RodzajSamolotu) { Pojazd = RodzajSamolotu; Maszyna = MaszynaObslugujaca; LNIDRezerwacjiBiletow = new List <string>(); ListaRezerwacji = new List <RezerwcjaBilet>(); SetID(ID); Droga = _Droga; DataGodzinaWylotu = DataWylotu; //ostatnia liczna to sekundy- nieistotna wartość w programie Pojazd = null; // to też pomaga stwierdzić czy istnieje samolot który jest zapisany do trasy CzasLotu = new TimeSpan(0, 0, 0); //dzięki temu wiemy że na początku nie ma konkretnego samolotu który obsługuje ta trase CzyMaWracac = _CZyMawracac; Maszyna.Cykliczny = false; Maszyna.CzyDostepny = false; CzasLotu = PlanLotu.ILeleciWjednaStrone(RodzajSamolotu, _Droga); DataLadowania = this.DataLądowaniaDateTime(); if (CzyMaWracac == true && Maszyna.CoObsluguje != null) { Maszyna.Coobsluguje2 = this; } else { Maszyna.CoObsluguje = this; } }
public PlanLotu(DateTime PierwszyLot, TimeSpan _CoIleLata, Trasa Kierunek, TypSamolotu _RodzajSamolotu, TimeSpan NajakiPrzedzialCzasuTworzyc, Samolot _Pojazd) { NaJakiPrzedzialczasu = NajakiPrzedzialCzasuTworzyc; Polaczenie = Kierunek; CZasBazowy = PierwszyLot; CoIleLata = _CoIleLata; RodzajSamolotu = _RodzajSamolotu; PierwszyLot = PierwszyLot.Subtract(CoIleLata);// te odjęcie czasu wiąże się z sposobem dodawania nowych lotów Pojazd = _Pojazd; Pojazd.Cykliczny = true; }
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public void PrzyciskUsunSamolot(Samolot Wskazany, TypSamolotu JakiTyp) { if (Wskazany != null && JakiTyp != null) { if (Wskazany.CzyDostepny == true && Wskazany.Cykliczny == false) { JakiTyp.GetListaSamolotow().Remove(Wskazany); } else { throw new Wyjatek("Samolot obsługuje aktualnie jakis lot"); } } else { throw new Wyjatek("Wybierz dwa obiekty"); } }
/// <summary> /// Funkcja do dodawanie PlanuLotu, zwraca 3 wyjątki: albo nie wszystkie pola pełne , albo że zdąży wrócić przed nsateonym lotem, że nie /// dolec ponieważ typ samolotu ma za mały sasięg , lub też że nie zdąży wrócić przed następnym lotem /// </summary> public void PrzyciskDodajPlanLotu(DateTime _PierwszyLot, TimeSpan _CoIlelata, Trasa Kierunek, TypSamolotu _RodzajSamolotu, TimeSpan NaJakiPrzedzialCzasu, Samolot _PojazdPermamentny) { if (_PierwszyLot != null && _CoIlelata != null && Kierunek != null && _RodzajSamolotu != null && NaJakiPrzedzialCzasu != null && _PojazdPermamentny != null) { if (PlanLotu.CzyDoleci(_RodzajSamolotu, Kierunek) == true) { if (PlanLotu.CzyzdarzyWrocic(_RodzajSamolotu, Kierunek, _CoIlelata) == true) { ListaPlanowLotu.Add(new PlanLotu(_PierwszyLot, _CoIlelata, Kierunek, _RodzajSamolotu, NaJakiPrzedzialCzasu, _PojazdPermamentny)); } else { throw new Wyjatek("Samolot nie zdąży wrócić do Lotniska bazoewgo"); } } else { throw new Wyjatek("Samolot ma za mały zasięg"); } } else { throw new Wyjatek("Wypełnij wszystkie pola!"); } }
/// <summary> /// Funkcja wywala /// </summary> public void PrzyciskDodajLot(Trasa Droga, DateTime DataWylotu, Boolean CzyMawracac, TypSamolotu _WybranytypSamolotu, Samolot WybranaMaszyna) { if (Droga != null && DataWylotu != null && _WybranytypSamolotu != null && WybranaMaszyna != null) { if (_WybranytypSamolotu.GetZasieg() >= Droga.Odleglosc) { Lot tmp = new Lot(PrzydzielanieID(ListaLotow, LNIDLotow), Droga, DataWylotu, CzyMawracac, WybranaMaszyna, _WybranytypSamolotu); if (CzyMawracac == true) { Lot tmp2 = new Lot(PrzydzielanieID(ListaLotow, LNIDLotow), Droga, DataWylotu.Add(tmp.CzasLotu.Add(new TimeSpan(3, 0, 0))), CzyMawracac, WybranaMaszyna, _WybranytypSamolotu); DodawanieDoListy(ListaLotow, tmp2); } DodawanieDoListy(ListaLotow, tmp); } else { throw new Wyjatek("Samolot nie doleci do celu, zmień jego rodzaj!"); } } else { throw new Wyjatek("Wypełnij wszystkie pola!"); } }
/// <summary> /// Konstruktor dla lotów cyklicznych /// </summary> public Lot(string ID, Trasa Droga, DateTime Datawylotu, TypSamolotu TypPrzypisanyDoPlanu, Samolot Maszyna, PlanLotu JakiPlan) : this(ID, Droga, Datawylotu, true, Maszyna, TypPrzypisanyDoPlanu) { Maszyna.Cykliczny = true; Maszyna.CoObsluguje = null; Maszyna.PlanLotuPrzypisany = JakiPlan; }