diff options
Autocommit at 05.05.2022 @ 17:33
3 files changed, 8 insertions, 4 deletions
| -rw-r--r-- | src/EventSystem/EventSystem.cpp | 9 | ||||
| -rw-r--r-- | src/EventSystem/EventSystem.h | 2 | ||||
| -rw-r--r-- | src/EventSystem/StatusCodes.h | 1 |
diff --git a/src/EventSystem/EventSystem.cpp b/src/EventSystem/EventSystem.cpp index 3502b50..be0b7ed 100644 --- a/src/EventSystem/EventSystem.cpp +++ b/src/EventSystem/EventSystem.cpp @@ -53,11 +53,14 @@ StatusCode EventSystem::cancelEvent(const char* name, const Date& date) { return Success; } -StatusCode EventSystem::reserveTicket(const char* name, const Date& date, char* note, unsigned seatRow, unsigned seatColumn) { - unsigned ei = indexOfEvent(name, date); - if (ei == events.get_count()) +StatusCode EventSystem::reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn) { + unsigned ind = indexOfEvent(name, date); + if (ind == events.get_count()) return E_EventDoesNotExist; + if (!events[ind].ticketIsFree(seatRow, seatColumn)) + return E_TicketIsNotFree; + return events[ind].reserveTicket(Ticket(seatRow, seatColumn), password, note); } List<Ticket> EventSystem::queryFreeTickets(const char* name, const Date& dt) { diff --git a/src/EventSystem/EventSystem.h b/src/EventSystem/EventSystem.h index c96483a..675f590 100644 --- a/src/EventSystem/EventSystem.h +++ b/src/EventSystem/EventSystem.h @@ -22,7 +22,7 @@ public: StatusCode createEvent(const Hall* hall, String name, Date date); StatusCode cancelEvent(const char* name, const Date& date); - StatusCode reserveTicket(const char* name, const Date& date, char* note, unsigned seatRow, unsigned seatColumn); + StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn); StatusCode cancelTicketReservation(); StatusCode buyTicket(); diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h index c9fd83d..456a223 100644 --- a/src/EventSystem/StatusCodes.h +++ b/src/EventSystem/StatusCodes.h @@ -14,6 +14,7 @@ enum StatusCode { E_EventWillOverlap, E_EventDoesNotExist, + E_TicketIsNotFree, E_TicketAlreadyBought, E_TicketAlreadyReserved, E_ReservationDoesNotExist, |
