/// <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.GetNRMiejsca() > Bilet2.GetNRMiejsca()) { return(true); } if (Bilet1.GetNRMiejsca() < Bilet2.GetNRMiejsca()) { 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 }
/// <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="Obiekt"></param> /// <param name="CzyVIP"></param> /// <returns></returns> public void RezerwujKupBilet(Klient Obiekt, Boolean CzyVIP, Boolean CzyToKupno, DateTime AktualnaData) { if (this.GetSamolot() != null) { 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, Obiekt, AktualnaData, CzyToKupno); // te zero trzeba zamienic na funkcje liczącą cene biletu , na przykład na podstawie odległości Obiekt.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); } } throw new Wyjatek("Nie ma miejsca w samolocie"); // wyjątek który wystrczy obsłużyć errorem na ekranie } throw new Wyjatek("Nie ma przydzielonego samolotu dla trasy"); // wyjątek, którego nie trzeba raczej obsługiwać, to dla wiadomości że coś w logice nie działa }
/// <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); }