Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem
diff options
context:
space:
mode:
Commit71a17770e7d20b60bb17542c8dc08bf052a446cc (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-02 21:55:41 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-02 21:55:41 +0300
Filesc50cdcc573b8fb10bef2d910ca8b965d1d7ab3a7 /src/EventSystem
FMI-OOP-P1_TicketSystem-71a17770e7d20b60bb17542c8dc08bf052a446cc.tar
FMI-OOP-P1_TicketSystem-71a17770e7d20b60bb17542c8dc08bf052a446cc.tar.gz
FMI-OOP-P1_TicketSystem-71a17770e7d20b60bb17542c8dc08bf052a446cc.zip
Parent16cceb36e637c2e30b82ef09becc96b0b9191be0 (diff)
Autocommit at 02.05.2022 @ 21:55
3 files changed, 22 insertions, 1 deletions
-rw-r--r--src/EventSystem/Event.cpp17
-rw-r--r--src/EventSystem/Reservation.h3
-rw-r--r--src/EventSystem/StatusCodes.h3
diff --git a/src/EventSystem/Event.cpp b/src/EventSystem/Event.cpp
index 607f225..f0a3f75 100644
--- a/src/EventSystem/Event.cpp
+++ b/src/EventSystem/Event.cpp
@@ -1,4 +1,5 @@
#include "Event.h"
+#include "Reservation.h"
#include "StatusCodes.h"
Event::Event() : Event(nullptr, "", DateTime()) {}
@@ -25,3 +26,19 @@ StatusCode Event::cancelReservation(const Ticket& ticket) {
reservations.removeAt(ind);
return Success;
}
+
+StatusCode Event::buyTicket(const Ticket& ticket) {
+ if (tickets.contain(ticket)) return E_TicketAlreadyBought;
+ if (reservations.contain(ticket)) return E_TicketAlreadyReserved;
+
+ tickets.insert(ticket);
+ return Success;
+}
+
+StatusCode Event::buyTicketFromReservation(const Reservation& reservation, const char* password) {
+ if (!reservations.contain(reservation)) return E_ReservationDoesNotExist;
+
+ if (!reservation.checkPassword(password)) return E_WrongReservationPassword;
+
+ reservations.removeAt
+}
diff --git a/src/EventSystem/Reservation.h b/src/EventSystem/Reservation.h
index 34ca1f1..a73e719 100644
--- a/src/EventSystem/Reservation.h
+++ b/src/EventSystem/Reservation.h
@@ -15,6 +15,9 @@ public:
Reservation(const Ticket& ticket);
Reservation(const Ticket& ticket, const char* password, const char* note);
+ bool checkPassword(const char* password) const;
+ const Ticket& get_ticket() const;
+
void read(std::istream& istr);
void write(std::ostream& ostr) const;
int compare(const Reservation& other) const;
diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h
index 95d6b3c..afbdd6b 100644
--- a/src/EventSystem/StatusCodes.h
+++ b/src/EventSystem/StatusCodes.h
@@ -15,7 +15,8 @@ enum StatusCode {
E_TicketAlreadyBought,
E_TicketAlreadyReserved,
- E_WrongTicketPassword,
+ E_ReservationDoesNotExist,
+ E_WrongReservationPassword,
};
#endif