Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services / EventService.cpp
diff options
context:
space:
mode:
Commitcd8bb8e946716a06325669d8cf3484b0d4dc558a (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 10:12:24 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 10:12:24 +0300
Files0a6dd6262e6dbf9996729c906dede44c2e6781b1 /src/Services/EventService.cpp
FMI-OOP-P1_TicketSystem-cd8bb8e946716a06325669d8cf3484b0d4dc558a.tar
FMI-OOP-P1_TicketSystem-cd8bb8e946716a06325669d8cf3484b0d4dc558a.tar.gz
FMI-OOP-P1_TicketSystem-cd8bb8e946716a06325669d8cf3484b0d4dc558a.zip
Parent4c818c48c9e9934e4b3f8f0da5f5c30dd61a1363 (diff)
Autocommit at 07.05.2022 @ 10:12
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) {