Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem
diff options
context:
space:
mode:
Commit16cceb36e637c2e30b82ef09becc96b0b9191be0 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-02 21:50:39 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-02 21:50:39 +0300
Filesf39c2d7c6f030133496f9d8a1def1c3430791103 /src/EventSystem
FMI-OOP-P1_TicketSystem-16cceb36e637c2e30b82ef09becc96b0b9191be0.tar
FMI-OOP-P1_TicketSystem-16cceb36e637c2e30b82ef09becc96b0b9191be0.tar.gz
FMI-OOP-P1_TicketSystem-16cceb36e637c2e30b82ef09becc96b0b9191be0.zip
Parentac0e4ab43c93d4c886a8c33a491b79c858080b3d (diff)
Autocommit at 02.05.2022 @ 21:50
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,