diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.cpp b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.cpp index 202aff3..5d74fac 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.cpp +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.cpp @@ -1 +1,61 @@ +/* +Author: Joel Mathew Thomas +Date: 18-12-2026 +*/ + +#include #include "CustomerMenu.h" +#include "FoodDeliveryController.h" +#include "inputHelper.h" +#include "outputHelper.h" + +void CustomerMenu::showMenu() +{ + bool isMenuActive = true; + while (isMenuActive) + { + char choice; + util::clear(); + std::cout << "Welcome " << m_userFullName << "\n"; + std::cout << "Customer Menu\n" + "1. View My Orders\n" + "2. Place Order\n" + "3. Cancel Order\n" + "4. Logout\n" + "Choice?: "; + util::readValue(choice); + if (!handleOperation(choice)) + { + isMenuActive = false; + } + } +} + +bool CustomerMenu::handleOperation(char choice) +{ + bool isMenuActive = true; + util::clear(); + switch (choice) + { + case '1': + m_foodDeliveryController.listCustomerOrders(); + break; + case '2': + m_foodDeliveryController.placeOrder(); + break; + case '3': + m_foodDeliveryController.cancelOrder(); + break; + case '4': + m_foodDeliveryController.logout(); + isMenuActive = false; + break; + } + std::cout << "\nDo you want to continue (Y/N)?: "; + util::readValue(choice); + if (choice != 'Y' && choice != 'y') + { + isMenuActive = false; + } + return isMenuActive; +} diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h index b2415e2..585ba34 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h @@ -17,6 +17,9 @@ public: void listMenuItems(); void addMenuItem(); void removeMenuItem(); + void listCustomerOrders(); + void placeOrder(); + void cancelOrder(); void logout(); };