Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services / EventService.cpp
diff options
context:
space:
mode:
Commit1dfbe734d7a2983adf66b36fe6c0bc72f762d4a7 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-22 09:41:08 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-22 09:41:08 +0300
Filesbe1c6c8d9738c0fd9310a00914ec15ceb37f935d /src/Services/EventService.cpp
FMI-OOP-P1_TicketSystem-main.tar
FMI-OOP-P1_TicketSystem-main.tar.gz
FMI-OOP-P1_TicketSystem-main.zip
Parent061e8baf6844d54d06a98b9100846e24c8d32e42 (diff)
Added an error for when a seat doesn't exist in an Event's hall HEAD main
1 files changed, 9 insertions, 0 deletions
-rw-r--r--src/Services/EventService.cpp9
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;