diff options
Autocommit at 07.05.2022 @ 14:38
3 files changed, 13 insertions, 4 deletions
| -rw-r--r-- | src/Services/EventService.cpp | 6 | ||||
| -rw-r--r-- | src/Services/EventService.h | 2 | ||||
| -rw-r--r-- | src/UserInterface/VenueConsoleUI.cpp | 9 |
diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp index 960f7cb..3eec0b5 100644 --- a/src/Services/EventService.cpp +++ b/src/Services/EventService.cpp @@ -104,10 +104,10 @@ StatusCode EventService::ticketIsReserved(const char* name, const Date& date, co } StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket) { - return buyTicket(name, date, ticket, nullptr); + return buyTicket(name, date, ticket, nullptr, nullptr); } -StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password, char** reservationNoteOutput) { +StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password, String* reservationNoteOutput) { unsigned eInd = indexOfEvent(name, date); if (eInd == events.get_count()) return E_EventDoesNotExist; @@ -123,6 +123,8 @@ StatusCode EventService::buyTicket(const char* name, const Date& date, const Tic if (!correctReservationPassword(events[eInd].get_reservations()[rInd], password)) return E_WrongReservationPassword; + if (reservationNoteOutput != nullptr) + *reservationNoteOutput = events[eInd].get_reservations()[rInd].get_note(); events[eInd].get_reservations().removeAt(rInd); } diff --git a/src/Services/EventService.h b/src/Services/EventService.h index f23183f..6e745f4 100644 --- a/src/Services/EventService.h +++ b/src/Services/EventService.h @@ -29,7 +29,7 @@ public: StatusCode ticketIsReserved(const char* name, const Date& date, const Ticket& ticket); - StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password); + StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password, String* reservationNoteOutput); StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket); String createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow); diff --git a/src/UserInterface/VenueConsoleUI.cpp b/src/UserInterface/VenueConsoleUI.cpp index ab84248..7ac850d 100644 --- a/src/UserInterface/VenueConsoleUI.cpp +++ b/src/UserInterface/VenueConsoleUI.cpp @@ -96,10 +96,17 @@ void command_buyTicket() { StatusCode s = es->ticketIsReserved(name, date, tic); if (s == Success) { + warningBox("Ticket is reserved!"); + char pass[PASSWORD_LEN]; inputLineSubBox("Enter reservation password: ", pass, PASSWORD_LEN); - s = es->buyTicket(name, date, tic, pass); + String note; + s = es->buyTicket(name, date, tic, pass, ¬e); + if (note.get_length() > 0) { + successBox("The reservation had a note attached. It reads:"); + successBox(note.get_cstr()); + } } else if (s == W_TicketHadNotBeenReserved) { s = es->buyTicket(name, date, tic); |
