Website Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commit268862f4afc6860e55a2dfec2bc7779a5c139582 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 18:08:40 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-05 18:08:40 +0300
Filesfb20845c361f191b49d5010d6df8f0bbb8667205 /src
FMI-OOP-P1_TicketSystem-268862f4afc6860e55a2dfec2bc7779a5c139582.tar
FMI-OOP-P1_TicketSystem-268862f4afc6860e55a2dfec2bc7779a5c139582.tar.gz
FMI-OOP-P1_TicketSystem-268862f4afc6860e55a2dfec2bc7779a5c139582.zip
Parentcd07f3c013b8cbf467cd1ebca9da19f2bcdfa50b (diff)
Autocommit at 05.05.2022 @ 18:08
3 files changed, 28 insertions, 8 deletions
-rw-r--r--src/ConsoleInterface/Menu.cpp16
-rw-r--r--src/ConsoleInterface/Menu.h4
-rw-r--r--src/VenueConsoleUI.cpp16
diff --git a/src/ConsoleInterface/Menu.cpp b/src/ConsoleInterface/Menu.cpp
index 07be42e..9b4e98e 100644
--- a/src/ConsoleInterface/Menu.cpp
+++ b/src/ConsoleInterface/Menu.cpp
@@ -20,11 +20,19 @@ void Menu::addCommand(const Command& command) {
bool error = false;
String errMessage;
-void Menu::registerError(const char* message) {
+void Menu::registerError(const char* message) const {
error = true;
errMessage = message;
}
+bool success = false;
+String succMessage;
+
+void Menu::registerSuccess(const char* message) const {
+ success = true;
+ succMessage = message;
+}
+
void Menu::navigate() const {
if (menuOptions.get_count() == 0) {
printLine("Menu is empty!");
@@ -45,6 +53,10 @@ void Menu::navigate() const {
printError(errMessage.get_cstr());
error = false;
}
+ if (success) {
+ printSuccess(succMessage.get_cstr());
+ success = false;
+ }
_printInputBoxLabel("Execute No [0-");
print(menuOptions.get_count());
@@ -52,7 +64,7 @@ void Menu::navigate() const {
read(buffer);
if (buffer > menuOptions.get_count())
- error = true;
+ registerError("Invalid menu option!");
else if (buffer > 0)
menuOptions[buffer - 1].run();
}
diff --git a/src/ConsoleInterface/Menu.h b/src/ConsoleInterface/Menu.h
index a4ee3c6..fb8771c 100644
--- a/src/ConsoleInterface/Menu.h
+++ b/src/ConsoleInterface/Menu.h
@@ -14,7 +14,9 @@ public:
Menu(const char* title, const Command* commands, unsigned commandCount);
void addCommand(const Command& command);
- void registerError(const char* message);
+
+ void registerError(const char* message) const;
+ void registerSuccess(const char* message) const;
void navigate() const;
};
diff --git a/src/VenueConsoleUI.cpp b/src/VenueConsoleUI.cpp
index acb9984..92a697a 100644
--- a/src/VenueConsoleUI.cpp
+++ b/src/VenueConsoleUI.cpp
@@ -10,10 +10,16 @@
Venue* v;
Menu mainMenu("FMI Ticket System"), ticketManagementMenu("Ticket management"), eventManagementMenu("Event management"), reportsMenu("Report management");
-void handleStatusCode(StatusCode sc) {
+void handleStatusCode(StatusCode sc, Menu menu) {
switch (sc) {
- case Success: printSuccess("Success!"); break;
- case E_EventDoesNotExist: printError("Event doesn't exist!");
+ case Success:
+ menu.registerSuccess("Success!"); break;
+ case E_EventDoesNotExist:
+ menu.registerError("Event doesn't exist!"); break;
+ case E_TicketAlreadyBought:
+ menu.registerError("Ticket was already bought!"); break;
+ case E_TicketAlreadyReserved:
+ menu.registerError("Ticket was already reserved!"); break;
default: break;
}
}
@@ -33,7 +39,7 @@ void command_newEvent() {
Date date;
inputBox("Enter event date and time: ", &date);
- handleStatusCode(v->get_es().createEvent(&v->get_halls()[hallIndex], name, date));
+ handleStatusCode(v->get_es().createEvent(&v->get_halls()[hallIndex], name, date), eventManagementMenu);
}
/* Ticket Management */
@@ -62,7 +68,7 @@ void command_reserveTicket() {
unsigned seat;
inputBox("Enter seat: ", &seat);
- handleStatusCode(v->get_es().reserveTicket(name, date, password, note, row, seat));
+ handleStatusCode(v->get_es().reserveTicket(name, date, password, note, row, seat), ticketManagementMenu);
}
void command_cancelReservation() {