Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services / EventService.cpp
diff options
context:
space:
mode:
1 files changed, 18 insertions, 8 deletions
-rw-r--r--src/Services/EventService.cpp26
diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp
index 384e75e..a48291d 100644
--- a/src/Services/EventService.cpp
+++ b/src/Services/EventService.cpp
@@ -88,22 +88,32 @@ StatusCode EventService::cancelTicketReservation(const char* name, const Date& d
return E_EventDoesNotExist;
unsigned rInd = events[eInd].get_reservations().findIndex(ticket);
- if (rInd < events[eInd].get_reservations().get_count())
- return E_TicketAlreadyReserved;
+ if (rInd == events[eInd].get_reservations().get_count())
+ return W_TicketHadNotBeenReserved;
- return events[eInd].cancelReservation(ticket);
+ events[eInd].get_reservations().removeAt(rInd);
+ return Success;
}
-StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat) {
+StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password) {
return buyTicket(name, date, Ticket(row, seat));
}
-StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket) {
- unsigned ind = indexOfEvent(name, date);
- if (ind == events.get_count())
+StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password) {
+ unsigned eInd = indexOfEvent(name, date);
+ if (eInd == events.get_count())
return E_EventDoesNotExist;
- return events[ind].buyTicket(ticket);
+ unsigned tInd = events[eInd].get_tickets().findIndex(ticket);
+ if (tInd < events[eInd].get_tickets().get_count())
+ return E_TicketAlreadyBought;
+
+ unsigned rInd = events[eInd].get_reservations().findIndex(ticket);
+ if (rInd < events[eInd].get_reservations().get_count())
+ return E_TicketAlreadyReserved;
+
+ events[eInd].get_tickets().insert(ticket);
+ return Success;
}
StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password) {