Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem / EventSystem.cpp
diff options
context:
space:
mode:
Commita110c6d4e53fc42a07318661eaa827387fa464a0 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 17:03:18 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 17:03:18 +0300
Filesdd383ae3241566913533716480e6055898f37588 /src/EventSystem/EventSystem.cpp
FMI-OOP-P1_TicketSystem-a110c6d4e53fc42a07318661eaa827387fa464a0.tar
FMI-OOP-P1_TicketSystem-a110c6d4e53fc42a07318661eaa827387fa464a0.tar.gz
FMI-OOP-P1_TicketSystem-a110c6d4e53fc42a07318661eaa827387fa464a0.zip
Parent57ad84517cd258d7df6ef8b63fbac6c9cb6fcba9 (diff)
Autocommit at 05.05.2022 @ 17:03
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
}
}