/// <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> /// 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 void PrzyciskUsunPlanLotu(PlanLotu Wskazany) { if (Wskazany != null) { Wskazany.Pojazd.Zeruj(); ListaPlanowLotu.Remove(Wskazany); } else { throw new Wyjatek("Wybierz Plan Lotu do usunięcia"); } }
/// <summary> /// Zwraca true jeżeli samolot zdąrzy rócić przed nastepnym lotem, wywala wyjatek jeżeli nie ma wystarczająco dużo pul wypełnionych /// więc wystarczy ładnie obsłurzyć /// </summary> public static Boolean CzyzdarzyWrocic(TypSamolotu TypSamolotuKtorychcemyDodac, Trasa TrasaCochemydodac, TimeSpan CoIleMaLatac)// ta funkcja jest do poprawy musi być statyczna { if (TypSamolotuKtorychcemyDodac != null && TrasaCochemydodac != null && CoIleMaLatac != null) { TimeSpan CalkowityCzas = PlanLotu.ILeleciWjednaStrone(TypSamolotuKtorychcemyDodac, TrasaCochemydodac); CalkowityCzas = CalkowityCzas.Add(CalkowityCzas); CalkowityCzas = CalkowityCzas.Add(new TimeSpan(3, 0, 0)); if (CalkowityCzas.CompareTo(CoIleMaLatac) >= 0) { return(false); } else { return(true); } } else { throw new Wyjatek("Dodaj wymagane 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; }
/// <summary> /// Sprawdza czy trzeba dodać loty do Glownej listylotow /// </summary> /// <param name="AktualnaData"></param> /// <returns></returns> public List <Lot> StworzLotyCykliczne(DateTime AktualnaData) { List <Lot> ListaLotowKtoraTrzebaDodac = new List <Lot>(); while (CzyTrzebaStworzyc(AktualnaData)) { CZasBazowy = CZasBazowy.Add(CoIleLata); ListaLotowKtoraTrzebaDodac.Add(new Lot("0", Polaczenie, CZasBazowy, RodzajSamolotu, Pojazd, this));// ID Lotu musi zostac zmienione przez funkcje w Firmie ListaLotowKtoraTrzebaDodac.Add(new Lot("0", new Trasa(Polaczenie), CZasBazowy.Add(PlanLotu.ILeleciWjednaStrone(RodzajSamolotu, Polaczenie).Add(new TimeSpan(3, 0, 0))), RodzajSamolotu, Pojazd, this)); } return(ListaLotowKtoraTrzebaDodac); }