Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services
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
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
2 files changed, 10 insertions, 0 deletions
-rw-r--r--src/Services/EventService.cpp9
-rw-r--r--src/Services/StatusCode.h1
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,