Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem / EventSystem.cpp
diff options
context:
space:
mode:
Commit496621640f216d27ab53e82da5eeaaaa78a77b32 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 17:48:33 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 17:48:33 +0300
Files881b07bf6b11166bf4da257b26f585abfbf716a9 /src/EventSystem/EventSystem.cpp
FMI-OOP-P1_TicketSystem-496621640f216d27ab53e82da5eeaaaa78a77b32.tar
FMI-OOP-P1_TicketSystem-496621640f216d27ab53e82da5eeaaaa78a77b32.tar.gz
FMI-OOP-P1_TicketSystem-496621640f216d27ab53e82da5eeaaaa78a77b32.zip
Parentfc33efaf7a9ed956a1601a59d8c55ddb5b6ea4b8 (diff)
Autocommit at 05.05.2022 @ 17:48
1 files changed, 20 insertions, 7 deletions
-rw-r--r--src/EventSystem/EventSystem.cpp27
diff --git a/src/EventSystem/EventSystem.cpp b/src/EventSystem/EventSystem.cpp
index 8ea368d..0bbd13a 100644
--- a/src/EventSystem/EventSystem.cpp
+++ b/src/EventSystem/EventSystem.cpp
@@ -7,17 +7,17 @@ void EventSystem::updateSoonestUpcoming() {
}
-unsigned EventSystem::indexOfEvent(const Date& dt) {
+unsigned EventSystem::indexOfEvent(const Date& date) {
// TODO: make binary search
for (unsigned i = indSoonestUpcoming; i < events.get_count(); i++) {
- if (events[i].get_date().compare(dt) == 0)
+ if (events[i].get_date().compare(date) == 0)
return i;
}
return events.get_count();
}
-unsigned EventSystem::indexOfEvent(const char* name, const Date& dt) {
- unsigned ind = indexOfEvent(dt);
+unsigned EventSystem::indexOfEvent(const char* name, const Date& date) {
+ unsigned ind = indexOfEvent(date);
if (ind < events.get_count() && events[ind].get_name().compare(name) == 0)
return ind;
return events.get_count();
@@ -69,12 +69,25 @@ StatusCode EventSystem::cancelTicketReservation(const char* name, const Date& da
return events[ind].cancelReservation(seatRow, seatColumn);
}
-StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat) {
+StatusCode EventSystem::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat) {
+ unsigned ind = indexOfEvent(name, date);
+ if (ind == events.get_count())
+ return E_EventDoesNotExist;
+ return events[ind].buyTicket(Ticket(row, seat));
}
-List<Ticket> EventSystem::queryFreeTickets(const char* name, const Date& dt) {
- unsigned ind = indexOfEvent(name, dt);
+
+StatusCode EventSystem::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password) {
+ unsigned ind = indexOfEvent(name, date);
+ if (ind == events.get_count())
+ return E_EventDoesNotExist;
+
+ return events[ind].buyTicketFromReservation(Reservation(Ticket(row, seat)), password);
+}
+
+List<Ticket> EventSystem::queryFreeTickets(const char* name, const Date& date) {
+ unsigned ind = indexOfEvent(name, date);
if (ind == events.get_count())
return List<Ticket>();