Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem
diff options
context:
space:
mode:
5 files changed, 13 insertions, 3 deletions
-rw-r--r--src/EventSystem/Event.cpp7
-rw-r--r--src/EventSystem/Event.h4
-rw-r--r--src/EventSystem/Reservation.cpp2
-rw-r--r--src/EventSystem/Reservation.h1
-rw-r--r--src/EventSystem/StatusCodes.h2
diff --git a/src/EventSystem/Event.cpp b/src/EventSystem/Event.cpp
index 9744e2e..607f225 100644
--- a/src/EventSystem/Event.cpp
+++ b/src/EventSystem/Event.cpp
@@ -11,12 +11,17 @@ Event::Event(const Hall* hall, String name, DateTime time) {
StatusCode Event::reserveTicket(const Ticket& ticket, const char* password, const char* note) {
if (tickets.contain(ticket)) return E_TicketAlreadyBought;
- if (reservations.contain(Reservation(ticket, "", ""))) return E_TicketAlreadyReserved;
+ if (reservations.contain(ticket)) return E_TicketAlreadyReserved;
reservations.insert(Reservation(ticket, password, note));
return Success;
}
StatusCode Event::cancelReservation(const Ticket& ticket) {
+ unsigned ind = reservations.findIndex(ticket);
+ if (ind == reservations.get_count())
+ return W_TicketWasNotReserved;
+ reservations.removeAt(ind);
+ return Success;
}
diff --git a/src/EventSystem/Event.h b/src/EventSystem/Event.h
index a72ba4b..fa1169a 100644
--- a/src/EventSystem/Event.h
+++ b/src/EventSystem/Event.h
@@ -24,7 +24,9 @@ public:
StatusCode cancelReservation(const Ticket& ticket);
- StatusCode buyReservation(const Reservation& reservation, const char* password);
+ StatusCode buyTicket(const Ticket& ticket);
+
+ StatusCode buyTicketFromReservation(const Reservation& reservation, const char* password);
};
#endif
diff --git a/src/EventSystem/Reservation.cpp b/src/EventSystem/Reservation.cpp
index 613a715..4cc716e 100644
--- a/src/EventSystem/Reservation.cpp
+++ b/src/EventSystem/Reservation.cpp
@@ -4,6 +4,8 @@
Reservation::Reservation() : Reservation(Ticket(), "", "") {}
+Reservation::Reservation(const Ticket& ticket) : Reservation(ticket, "", "") {}
+
Reservation::Reservation(const Ticket& ticket, const char* password, const char* note) {
this->ticket = ticket;
strcpy(this->password, password);
diff --git a/src/EventSystem/Reservation.h b/src/EventSystem/Reservation.h
index acc294c..34ca1f1 100644
--- a/src/EventSystem/Reservation.h
+++ b/src/EventSystem/Reservation.h
@@ -12,6 +12,7 @@ class Reservation {
public:
Reservation();
+ Reservation(const Ticket& ticket);
Reservation(const Ticket& ticket, const char* password, const char* note);
void read(std::istream& istr);
diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h
index a18dcd5..95d6b3c 100644
--- a/src/EventSystem/StatusCodes.h
+++ b/src/EventSystem/StatusCodes.h
@@ -5,7 +5,7 @@ enum StatusCode {
Success,
- W_TicketNotReserved,
+ W_TicketWasNotReserved,
E_Generic,