diff options
Autocommit at 05.05.2022 @ 17:03
2 files changed, 17 insertions, 4 deletions
| -rw-r--r-- | src/EventSystem/EventSystem.cpp | 18 | ||||
| -rw-r--r-- | src/EventSystem/EventSystem.h | 3 |
diff --git a/src/EventSystem/EventSystem.cpp b/src/EventSystem/EventSystem.cpp index dc64c3b..6a77399 100644 --- a/src/EventSystem/EventSystem.cpp +++ b/src/EventSystem/EventSystem.cpp @@ -1,4 +1,5 @@ #include "EventSystem.h" +#include "StatusCodes.h" /* Private */ @@ -6,6 +7,14 @@ void EventSystem::updateSoonestUpcoming() { } +unsigned EventSystem::indexOfEvent(const Date& dt) { + for (unsigned i = indSoonestUpcoming; i < events.get_count(); i++) { + if (events[i].get_date().compare(dt) == 0) + return i; + } + return events.get_count(); +} + unsigned EventSystem::indexOfEvent(const char* name, const Date& dt) { for (unsigned i = indSoonestUpcoming; i < events.get_count(); i++) { if (events[i].get_date().compare(dt) == 0 && events[i].get_name().compare(name) == 0) @@ -28,6 +37,9 @@ EventSystem::EventSystem(const Event* events, unsigned eventCount) { } StatusCode EventSystem::createEvent(const Hall* hall, String name, Date date) { + if (indexOfEvent(date) < events.get_count()) + return E_EventWillOverlap; + events.insert(Event(hall, name, date)); return Success; } @@ -35,15 +47,15 @@ StatusCode EventSystem::createEvent(const Hall* hall, String name, Date date) { List<Ticket> EventSystem::queryFreeTickets(const char* name, const Date& dt) { unsigned ind = indexOfEvent(name, dt); - if (ind == events[ind].get_count()) + if (ind == events.get_count()) return List<Ticket>(); List<Ticket> freeTickets = List<Ticket>(); - unsigned nextInd = 0; + unsigned nextIndT = 0, nextIndR = 0; for (unsigned r = 1; r <= events[ind].get_hall().get_rowCount(); r++) { for (unsigned s = 1; s <= events[ind].get_hall().get_seatsPerRow(); s++) { - + // TODO: finish } } diff --git a/src/EventSystem/EventSystem.h b/src/EventSystem/EventSystem.h index 7ee05fe..2533a61 100644 --- a/src/EventSystem/EventSystem.h +++ b/src/EventSystem/EventSystem.h @@ -12,6 +12,7 @@ class EventSystem { unsigned indSoonestUpcoming; void updateSoonestUpcoming(); + unsigned indexOfEvent(const Date& dt); unsigned indexOfEvent(const char* name, const Date& dt); public: @@ -19,7 +20,7 @@ public: EventSystem(const Event* events, unsigned eventCount); StatusCode createEvent(const Hall* hall, String name, Date date); - StatusCode cancelEvent(); + StatusCode cancelEvent(const char* name, Date date); StatusCode reserveTicket(unsigned eventIndex, char* note, unsigned seatRow, unsigned seatColumn); StatusCode cancelTicketReservation(); |
