From 6c7d87f7d41d0a43689bcc66be8c35cf041e6b9b Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 5 May 2022 17:33:27 +0300 Subject: Autocommit at 05.05.2022 @ 17:33 --- src/EventSystem/EventSystem.cpp | 9 ++++++--- src/EventSystem/EventSystem.h | 2 +- src/EventSystem/StatusCodes.h | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/EventSystem') 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 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, -- cgit v1.3.1-23-gd82d