diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.cpp b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.cpp index 3f1a7a7..674f7f0 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.cpp +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.cpp @@ -5,6 +5,8 @@ Date: 19-02-2026 #include #include +#include +#include #include "FoodDeliveryController.h" #include "Menu.h" #include "RestaurantOwnerMenu.h" @@ -234,6 +236,34 @@ static deliveryAssignments::iterator selectDeliveryAssignmentFromList(deliveryAs return assignmentIterator; } + +bool isPhoneNumberValid(const std::string& phoneNumber) { + if (phoneNumber.size() != 10) + { + return false; + } + return std::all_of(phoneNumber.begin(), phoneNumber.end(), + [](char character) + { + return std::isdigit(character); + } + ); +} + +bool isEmailValid(const std::string& email) { + int index = email.find('@'); + if (index == std::string::npos) return false; + if (email.find('@', index + 1) != std::string::npos) + { + return false; + } + if (index == 0 || index == email.size() - 1) + { + return false; + } + return true; +} + void FoodDeliveryController::loadStates() { FileDatabase userDatabase(USERS_FILE); @@ -506,8 +536,18 @@ void FoodDeliveryController::registerUser() util::readString(name); std::cout << "Enter Phone: "; util::readString(phone); + if (!isPhoneNumberValid(phone)) + { + std::cout << "Phone Number is Invalid. Cannot Register User!\n"; + return; + } std::cout << "Enter Email: "; util::readString(email); + if (!isEmailValid(email)) + { + std::cout << "Email ID is Invalid. Cannot Register User!\n"; + return; + } std::cout << "Enter Address: "; util::readString(address); while (true) diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.txt b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.txt index 906daef..801bd87 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.txt +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.txt @@ -1,9 +1,9 @@ -1|alex|Alex Miller|100000001|alex|alex@mail.com|CityOne|RestaurantOwner -2|jordan|Jordan Smith|100000002|jordan|jordan@mail.com|CityTwo|RestaurantOwner -3|taylor|Taylor Brown|100000003|taylor|taylor@mail.com|CityThree|RestaurantOwner -4|emma|Emma Wilson|100000004|emma|emma@mail.com|CityOne|Customer -5|liam|Liam Johnson|100000005|liam|liam@mail.com|CityTwo|Customer -6|olivia|Olivia Davis|100000006|olivia|olivia@mail.com|CityThree|Customer -7|noah|Noah Anderson|100000007|noah|noah@mail.com|CityOne|DeliveryPartner -8|ava|Ava Martinez|100000008|ava|ava@mail.com|CityTwo|DeliveryPartner -9|ethan|Ethan Thomas|100000009|ethan|ethan@mail.com|CityThree|DeliveryPartner +1|alex|Alex Miller|1000000010|alex|alex@mail.com|CityOne|RestaurantOwner +2|jordan|Jordan Smith|1000000020|jordan|jordan@mail.com|CityTwo|RestaurantOwner +3|taylor|Taylor Brown|1000000030|taylor|taylor@mail.com|CityThree|RestaurantOwner +4|emma|Emma Wilson|1000000040|emma|emma@mail.com|CityOne|Customer +5|liam|Liam Johnson|1000000050|liam|liam@mail.com|CityTwo|Customer +6|olivia|Olivia Davis|1000000060|olivia|olivia@mail.com|CityThree|Customer +7|noah|Noah Anderson|1000000070|noah|noah@mail.com|CityOne|DeliveryPartner +8|ava|Ava Martinez|1000000080|ava|ava@mail.com|CityTwo|DeliveryPartner +9|ethan|Ethan Thomas|1000000090|ethan|ethan@mail.com|CityThree|DeliveryPartner