diff options
Autocommit at 02.05.2022 @ 21:50
5 files changed, 13 insertions, 3 deletions
| -rw-r--r-- | src/EventSystem/Event.cpp | 7 | ||||
| -rw-r--r-- | src/EventSystem/Event.h | 4 | ||||
| -rw-r--r-- | src/EventSystem/Reservation.cpp | 2 | ||||
| -rw-r--r-- | src/EventSystem/Reservation.h | 1 | ||||
| -rw-r--r-- | src/EventSystem/StatusCodes.h | 2 |
diff --git a/src/EventSystem/Event.cpp b/src/EventSystem/Event.cpp index 9744e2e..607f225 100644 --- a/src/EventSystem/Event.cpp +++ b/src/EventSystem/Event.cpp @@ -11,12 +11,17 @@ Event::Event(const Hall* hall, String name, DateTime time) { StatusCode Event::reserveTicket(const Ticket& ticket, const char* password, const char* note) { if (tickets.contain(ticket)) return E_TicketAlreadyBought; - if (reservations.contain(Reservation(ticket, "", ""))) return E_TicketAlreadyReserved; + if (reservations.contain(ticket)) return E_TicketAlreadyReserved; reservations.insert(Reservation(ticket, password, note)); return Success; } StatusCode Event::cancelReservation(const Ticket& ticket) { + unsigned ind = reservations.findIndex(ticket); + if (ind == reservations.get_count()) + return W_TicketWasNotReserved; + reservations.removeAt(ind); + return Success; } diff --git a/src/EventSystem/Event.h b/src/EventSystem/Event.h index a72ba4b..fa1169a 100644 --- a/src/EventSystem/Event.h +++ b/src/EventSystem/Event.h @@ -24,7 +24,9 @@ public: StatusCode cancelReservation(const Ticket& ticket); - StatusCode buyReservation(const Reservation& reservation, const char* password); + StatusCode buyTicket(const Ticket& ticket); + + StatusCode buyTicketFromReservation(const Reservation& reservation, const char* password); }; #endif diff --git a/src/EventSystem/Reservation.cpp b/src/EventSystem/Reservation.cpp index 613a715..4cc716e 100644 --- a/src/EventSystem/Reservation.cpp +++ b/src/EventSystem/Reservation.cpp @@ -4,6 +4,8 @@ Reservation::Reservation() : Reservation(Ticket(), "", "") {} +Reservation::Reservation(const Ticket& ticket) : Reservation(ticket, "", "") {} + Reservation::Reservation(const Ticket& ticket, const char* password, const char* note) { this->ticket = ticket; strcpy(this->password, password); diff --git a/src/EventSystem/Reservation.h b/src/EventSystem/Reservation.h index acc294c..34ca1f1 100644 --- a/src/EventSystem/Reservation.h +++ b/src/EventSystem/Reservation.h @@ -12,6 +12,7 @@ class Reservation { public: Reservation(); + Reservation(const Ticket& ticket); Reservation(const Ticket& ticket, const char* password, const char* note); void read(std::istream& istr); diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h index a18dcd5..95d6b3c 100644 --- a/src/EventSystem/StatusCodes.h +++ b/src/EventSystem/StatusCodes.h @@ -5,7 +5,7 @@ enum StatusCode { Success, - W_TicketNotReserved, + W_TicketWasNotReserved, E_Generic, |
