Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem / EventSystem.cpp
diff options
context:
space:
mode:
1 files changed, 15 insertions, 3 deletions
-rw-r--r--src/EventSystem/EventSystem.cpp18
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
}
}