From 1f623d9d8ae4e5ea5f776f5c1b6dd51390db96de Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 7 May 2022 10:17:26 +0300 Subject: Autocommit at 07.05.2022 @ 10:17 --- src/Models/Reservation.h | 2 ++ src/Services/EventService.cpp | 28 +++++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/Models/Reservation.h b/src/Models/Reservation.h index 936b6b5..43d8f81 100644 --- a/src/Models/Reservation.h +++ b/src/Models/Reservation.h @@ -19,6 +19,8 @@ public: Reservation(const Ticket& ticket, const char* password, const char* note); const Ticket& get_ticket() const; + const char* get_password() const; + const char* get_note() const; void read(std::istream& istr); void write(std::ostream& ostr) const; diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp index a48291d..cfd0422 100644 --- a/src/Services/EventService.cpp +++ b/src/Services/EventService.cpp @@ -95,8 +95,16 @@ StatusCode EventService::cancelTicketReservation(const char* name, const Date& d return Success; } +StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat) { + return buyTicket(name, date, Ticket(row, seat), nullptr); +} + +StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket) { + return buyTicket(name, date, ticket, nullptr); +} + StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password) { - return buyTicket(name, date, Ticket(row, seat)); + return buyTicket(name, date, Ticket(row, seat), password); } StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password) { @@ -109,23 +117,17 @@ StatusCode EventService::buyTicket(const char* name, const Date& date, const Tic return E_TicketAlreadyBought; unsigned rInd = events[eInd].get_reservations().findIndex(ticket); - if (rInd < events[eInd].get_reservations().get_count()) - return E_TicketAlreadyReserved; + if (rInd < events[eInd].get_reservations().get_count()) { + if (password == nullptr) + return E_TicketAlreadyReserved; + + } events[eInd].get_tickets().insert(ticket); return Success; } -StatusCode EventService::buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password) { - return buyTicket(name, date, Ticket(row, seat), password); -} - -StatusCode EventService::buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password) { - unsigned ind = indexOfEvent(name, date); - if (ind == events.get_count()) - return E_EventDoesNotExist; - - return events[ind].buyTicketFromReservation(Reservation(ticket), password); +return events[ind].buyTicketFromReservation(Reservation(ticket), password); } -- cgit v1.3.1-23-gd82d