Website Summary Files Commits Branches @commit @diff @stats
path: root / src / EventSystem
diff options
context:
space:
mode:
Commitad78d67f131cc4e8ea158ecf01321cd498e72b56 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 20:18:50 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 20:18:50 +0300
Files021100e5e05f1d3c847eaf4030f4e36a8de211b3 /src/EventSystem
FMI-OOP-P1_TicketSystem-ad78d67f131cc4e8ea158ecf01321cd498e72b56.tar
FMI-OOP-P1_TicketSystem-ad78d67f131cc4e8ea158ecf01321cd498e72b56.tar.gz
FMI-OOP-P1_TicketSystem-ad78d67f131cc4e8ea158ecf01321cd498e72b56.zip
Parentb300191570fd24fd374360be1b0e4c9a4598a0f2 (diff)
Autocommit at 05.05.2022 @ 20:18
3 files changed, 20 insertions, 1 deletions
-rw-r--r--src/EventSystem/EventSystem.cpp6
-rw-r--r--src/EventSystem/EventSystem.h2
-rw-r--r--src/EventSystem/Ticket.cpp13
diff --git a/src/EventSystem/EventSystem.cpp b/src/EventSystem/EventSystem.cpp
index 0bbd13a..ccf31c5 100644
--- a/src/EventSystem/EventSystem.cpp
+++ b/src/EventSystem/EventSystem.cpp
@@ -54,11 +54,15 @@ StatusCode EventSystem::cancelEvent(const char* name, const Date& date) {
}
StatusCode EventSystem::reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn) {
+ return reserveTicket(name, date, password, note, Ticket(seatRow, seatColumn));
+}
+
+StatusCode EventSystem::reserveTicket(const char* name, const Date& date, const char* password, const char* note, const Ticket& ticket) {
unsigned ind = indexOfEvent(name, date);
if (ind == events.get_count())
return E_EventDoesNotExist;
- return events[ind].reserveTicket(Ticket(seatRow, seatColumn), password, note);
+ return events[ind].reserveTicket(ticket, password, note);
}
StatusCode EventSystem::cancelTicketReservation(const char* name, const Date& date, unsigned seatRow, unsigned seatColumn) {
diff --git a/src/EventSystem/EventSystem.h b/src/EventSystem/EventSystem.h
index d00b14b..7956b72 100644
--- a/src/EventSystem/EventSystem.h
+++ b/src/EventSystem/EventSystem.h
@@ -23,6 +23,8 @@ public:
StatusCode cancelEvent(const char* name, const Date& date);
StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn);
+ StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, const Ticket& ticket);
+
StatusCode cancelTicketReservation(const char* name, const Date& date, unsigned seatRow, unsigned seatColumn);
StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat);
StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password);
diff --git a/src/EventSystem/Ticket.cpp b/src/EventSystem/Ticket.cpp
index 0199654..997045e 100644
--- a/src/EventSystem/Ticket.cpp
+++ b/src/EventSystem/Ticket.cpp
@@ -30,3 +30,16 @@ int Ticket::compare(const Ticket& other) const {
return (seat > other.seat) - (other.seat < seat);
return (row > other.row) - (other.row < row);
}
+
+/* General */
+
+std::istream& operator>>(std::istream& istr, Ticket& ticket) {
+ unsigned row, seat;
+ istr >> row >> seat;
+ ticket = Ticket(row, seat);
+ return istr;
+}
+
+std::ostream& operator<<(std::ostream& ostr, const Ticket& ticket) {
+ return ostr << ticket.get_row() << " " << ticket.get_seat();
+}