From 71a17770e7d20b60bb17542c8dc08bf052a446cc Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 2 May 2022 21:55:41 +0300 Subject: Autocommit at 02.05.2022 @ 21:55 --- src/EventSystem/Event.cpp | 17 +++++++++++++++++ src/EventSystem/Reservation.h | 3 +++ src/EventSystem/StatusCodes.h | 3 ++- 3 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src/EventSystem') 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 -- cgit v1.3.1-23-gd82d