diff options
3 files changed, 12 insertions, 0 deletions
| -rw-r--r-- | src/Services/EventService.cpp | 9 | ||||
| -rw-r--r-- | src/Services/StatusCode.h | 1 | ||||
| -rw-r--r-- | src/UserInterface/FMITicketSystemConsoleUI.cpp | 2 |
diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp index 0ab223f..7ee757e 100644 --- a/src/Services/EventService.cpp +++ b/src/Services/EventService.cpp @@ -74,6 +74,9 @@ StatusCode EventService::reserveTicket(const char* name, const Date& date, const if (eInd == events.get_count()) return E_EventDoesNotExist; + if (events[eInd].get_hall().get_rows() < ticket.get_row() || events[eInd].get_hall().get_seatsPerRow() < ticket.get_seat()) + return E_InvalidSeat; + unsigned tInd = events[eInd].get_tickets().findIndex(ticket); if (tInd < events[eInd].get_tickets().get_count()) return E_TicketAlreadyBought; @@ -100,6 +103,9 @@ StatusCode EventService::cancelTicketReservation(const char* name, const Date& d if (eInd == events.get_count()) return E_EventDoesNotExist; + if (events[eInd].get_hall().get_rows() < ticket.get_row() || events[eInd].get_hall().get_seatsPerRow() < ticket.get_seat()) + return E_InvalidSeat; + unsigned rInd = events[eInd].get_reservations().findIndex(ticket); if (rInd == events[eInd].get_reservations().get_count()) return W_TicketHadNotBeenReserved; @@ -144,6 +150,9 @@ StatusCode EventService::buyTicket(const char* name, const Date& date, const Tic if (eInd == events.get_count()) return E_EventDoesNotExist; + if (events[eInd].get_hall().get_rows() < ticket.get_row() || events[eInd].get_hall().get_seatsPerRow() < ticket.get_seat()) + return E_InvalidSeat; + unsigned tInd = events[eInd].get_tickets().findIndex(ticket); if (tInd < events[eInd].get_tickets().get_count()) return E_TicketAlreadyBought; diff --git a/src/Services/StatusCode.h b/src/Services/StatusCode.h index 3813e87..9d3b94f 100644 --- a/src/Services/StatusCode.h +++ b/src/Services/StatusCode.h @@ -25,6 +25,7 @@ enum StatusCode { E_EventWillOverlap, E_EventDoesNotExist, + E_InvalidSeat, E_TicketAlreadyBought, E_TicketAlreadyReserved, E_ReservationDoesNotExist, diff --git a/src/UserInterface/FMITicketSystemConsoleUI.cpp b/src/UserInterface/FMITicketSystemConsoleUI.cpp index 29fb1ef..6e4321d 100644 --- a/src/UserInterface/FMITicketSystemConsoleUI.cpp +++ b/src/UserInterface/FMITicketSystemConsoleUI.cpp @@ -36,6 +36,8 @@ void handleStatusCode(StatusCode sc, Menu menu) { menu.registerError("Wrong reservation password!"); break; case E_FileCouldNotBeOpened: menu.registerError("An error occurred while trying to open a file!"); break; + case E_InvalidSeat: + menu.registerError("The seat doesn't exist!"); break; default: menu.registerError("An unhandled status code was returned!"); break; } |
