public void PrzyciskAnulujRezerwacje(RezerwcjaBilet Dowywalenia) { if (Dowywalenia != null) { Dowywalenia.Polaczenie.AnulujRezerwacje(Dowywalenia.Pasazer, Dowywalenia); } else { throw new Wyjatek("Zaznacz konkretny obiekt!"); } }
/// <summary> /// Funkcja do usuwania biletów, zwraca fałsz jeżeli nie ma danego biletu na liście /// zwraca prawde jeżeli usuwany bilet był na liście i usuną dany bilet /// /// </summary> /// <param name="UsuwanyBilet"></param> /// <returns></returns> public Boolean UsunBiletRezerwacje(RezerwcjaBilet UsuwanyBilet) { if (ListaBiletowRezerwacji.Count() != 0) { foreach (RezerwcjaBilet Obiekt in ListaBiletowRezerwacji) { if (Obiekt == UsuwanyBilet) { ListaBiletowRezerwacji.Remove(UsuwanyBilet); return(true); } } } return(false); }
/// <summary> /// Funkcja zwracająca fałsz jak chcemy dodać bilet który już jest na liśćie /// nie wiem czy się przyda ale tak na wszelki wypadek już jest XD /// </summary> /// <returns></returns> public Boolean DodajBiletRezerwacje(RezerwcjaBilet DodawanyBilet) { if (ListaBiletowRezerwacji.Count() != 0) { foreach (RezerwcjaBilet Obiekt in ListaBiletowRezerwacji)// to prawdopodobnie nie jest potrzebne , jak będziemy robili to w WPFie to nie będzie sytuacji gdzie dodajemy ten sam bilet { if (Obiekt == DodawanyBilet) { return(false); } } } ListaBiletowRezerwacji.Add(DodawanyBilet); return(true); }
/// <summary> /// Funkcja potrzebna w sytuacji, kiedy Id jest brane z listy usuniętych obiektów , ta funkcja sprawdza czy Taka sytuacja miała miejsce /// Zwraca true jeżeli id pierwszego biletu jest większa, zwraca false w przeciwnym wypadku /// </summary> /// <returns></returns> public Boolean PorownajIDBiletow(RezerwcjaBilet Bilet1, RezerwcjaBilet Bilet2) { if (Bilet1 != null && Bilet2 != null) { if (Bilet1.NrMiesca > Bilet2.NrMiesca) { return(true); } if (Bilet1.NrMiesca < Bilet2.NrMiesca) { return(false); } throw new Wyjatek("Bardzo poważny problem , dwa bilety mają ten sam numer miejsca co nie powinno mić miejsca!"); // poważny błąd, raczej nie trzeba go obsługiwac , napisany po to żeby // zawiadomic że wystąpił błąd logiczny i trzeba popatrzeć w kodzik- możliwe że jakieś //id z kosza zostało dane na koniec listy i tworzą się kopie id które juz jest na liści } throw new Wyjatek("Jeden z obiektów jest nullem"); }
/// <summary> /// Funkcja dodająca rezerwacje na dany lot dla danej osoby, CyToKupno określa czy klient rezerwuje czy kupuje od razu bilet /// </summary> /// <param name="_Klient"></param> /// <param name="CzyVIP"></param> /// <returns></returns> public void RezerwujKupBilet(Klient _Klient, Boolean CzyVIP, Boolean CzyToKupno, DateTime AktualnaData) { if ((this.GetIloscMiejscWolnychZwyklych() != 0 && CzyVIP == false) || (this.GetIloscMiejscWolnychVip() != 0 && CzyVIP == true)) // funkcja sprawdza czy można zarezerwować miejsce { RezerwcjaBilet NowyBilecikRezerwacja = new RezerwcjaBilet(PrzydzielanieIDRezerwacja(), 0, CzyVIP, _Klient, AktualnaData, CzyToKupno, this); // te zero trzeba zamienic na funkcje liczącą cene biletu , na przykład na podstawie odległości _Klient.DodajBiletRezerwacje(NowyBilecikRezerwacja); if (PorownajIDBiletow(NowyBilecikRezerwacja, ListaRezerwacji[ListaRezerwacji.Count() - 1]))// to sytuacja kiedy nowy obiekt ma większe id - jest dodawany na koncu { ListaRezerwacji.Add(NowyBilecikRezerwacja); } else { ListaRezerwacji.Insert(0, NowyBilecikRezerwacja); } } else { throw new Wyjatek("Brak miejsc wolnych"); } }
/// <summary> /// Funkcja usuwająca rezerwacje i bilety- usuwa z listy w kliencie i z listy w Locie /// Nie ma żadanego boola czy zwracania wyjątków , więc z góry zakładamy że biletdousunięcia istnieje tak samo jak Klient /// </summary> /// <param name="Objekt"></param> /// <param name="Biletdousuniecia"></param> public void AnulujRezerwacje(Klient Objekt, RezerwcjaBilet Biletdousuniecia) { LNIDRezerwacjiBiletow.Add(Biletdousuniecia.GetNrRezerwacji());// numer biletu jest wsadzany do kosza, z którego później będzie brane ListaRezerwacji.Remove(Biletdousuniecia); Objekt.UsunBiletRezerwacje(Biletdousuniecia); }