diff options
Autocommit at 05.05.2022 @ 17:38
5 files changed, 16 insertions, 3 deletions
| -rw-r--r-- | src/EventSystem/Event.cpp | 6 | ||||
| -rw-r--r-- | src/EventSystem/Event.h | 1 | ||||
| -rw-r--r-- | src/EventSystem/EventSystem.cpp | 8 | ||||
| -rw-r--r-- | src/EventSystem/EventSystem.h | 2 | ||||
| -rw-r--r-- | src/EventSystem/StatusCodes.h | 2 |
diff --git a/src/EventSystem/Event.cpp b/src/EventSystem/Event.cpp index e9e0375..8d01fbe 100644 --- a/src/EventSystem/Event.cpp +++ b/src/EventSystem/Event.cpp @@ -30,10 +30,14 @@ StatusCode Event::reserveTicket(const Ticket& ticket, const char* password, cons return Success; } +StatusCode Event::cancelReservation(unsigned row, unsigned seat) { + return cancelReservation(Ticket(row, seat)); +} + StatusCode Event::cancelReservation(const Ticket& ticket) { unsigned ind = reservations.findIndex(ticket); if (ind == reservations.get_count()) - return W_TicketWasNotReserved; + return W_TicketHadNotBeenReserved; reservations.removeAt(ind); return Success; diff --git a/src/EventSystem/Event.h b/src/EventSystem/Event.h index f4c5038..9dd1218 100644 --- a/src/EventSystem/Event.h +++ b/src/EventSystem/Event.h @@ -28,6 +28,7 @@ public: StatusCode reserveTicket(const Ticket& ticket, const char* password, const char* note); + StatusCode cancelReservation(unsigned row, unsigned seat); StatusCode cancelReservation(const Ticket& ticket); StatusCode buyTicket(const Ticket& ticket); diff --git a/src/EventSystem/EventSystem.cpp b/src/EventSystem/EventSystem.cpp index be0b7ed..1a490ad 100644 --- a/src/EventSystem/EventSystem.cpp +++ b/src/EventSystem/EventSystem.cpp @@ -63,6 +63,14 @@ StatusCode EventSystem::reserveTicket(const char* name, const Date& date, const return events[ind].reserveTicket(Ticket(seatRow, seatColumn), password, note); } +StatusCode EventSystem::cancelTicketReservation(const char* name, const Date& date, unsigned seatRow, unsigned seatColumn) { + unsigned ind = indexOfEvent(name, date); + if (ind == events.get_count()) + return E_EventDoesNotExist; + + return events[ind].cancelReservation(seatRow, seatColumn); +} + List<Ticket> EventSystem::queryFreeTickets(const char* name, const Date& dt) { unsigned ind = indexOfEvent(name, dt); diff --git a/src/EventSystem/EventSystem.h b/src/EventSystem/EventSystem.h index 675f590..f994a4c 100644 --- a/src/EventSystem/EventSystem.h +++ b/src/EventSystem/EventSystem.h @@ -23,7 +23,7 @@ public: StatusCode cancelEvent(const char* name, const Date& date); StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn); - StatusCode cancelTicketReservation(); + StatusCode cancelTicketReservation(const char* name, const Date& date, unsigned seatRow, unsigned seatColumn); StatusCode buyTicket(); List<Ticket> queryFreeTickets(const char* name, const Date& dt); diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h index 456a223..449a81f 100644 --- a/src/EventSystem/StatusCodes.h +++ b/src/EventSystem/StatusCodes.h @@ -5,7 +5,7 @@ enum StatusCode { Success, - W_TicketWasNotReserved, + W_TicketHadNotBeenReserved, E_Generic, |
