Exemple #1
0
 /// <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!");
     }
 }
Exemple #2
0
        /// <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;
            }
        }
Exemple #3
0
 public void PrzyciskUsunPlanLotu(PlanLotu Wskazany)
 {
     if (Wskazany != null)
     {
         Wskazany.Pojazd.Zeruj();
         ListaPlanowLotu.Remove(Wskazany);
     }
     else
     {
         throw new Wyjatek("Wybierz Plan Lotu do usunięcia");
     }
 }
Exemple #4
0
 /// <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!!");
     }
 }
Exemple #5
0
 /// <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;
 }
Exemple #6
0
        /// <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);
        }