Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services
diff options
context:
space:
mode:
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,