From 1785660e9430352838304d8ce58bb11fa1010dda Mon Sep 17 00:00:00 2001 From: Tinu Johnson Date: Tue, 7 Apr 2026 17:38:53 +0530 Subject: [PATCH] Add Employee Listing Feature EMP007 : View All Employees - Implemented getEmployees() in ZenvyController to return list of employees - Added working getEmployees() implementation in EmployeeManagementService - Fixed iterator usage to correctly extract map values into Employees vector - Added viewEmployees() UI flow in EmployeeMenu - Integrated employee listing into EmployeeMenu option flow - Added enumToString() helper for printing employee roles - Improved formatting and filtering of ACTIVE employees in employee listing - Performed minor code cleanup and consistency adjustments in controller and menu Smitha Mohan --- .../controllers/ZenvyController.cpp | 4 +- .../controllers/ZenvyController.h | 2 +- .../services/EmployeeManagementService.cpp | 15 +++++-- .../Trenser.Zenvy/views/EmployeeMenu.cpp | 45 +++++++++++++++++-- .../Trenser.Zenvy/views/EmployeeMenu.h | 1 + 5 files changed, 58 insertions(+), 9 deletions(-) diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp index e7f4e30..ec1e7b1 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp @@ -27,10 +27,12 @@ bool ZenvyController::deactivateEmployee(const std::string& id) return m_employeeManagementService->deactivateEmployee(id); } -Employees EmployeeManagementService::getEmployees() +Employees ZenvyController::getEmployee() { + return m_employeeManagementService->getEmployees(); } + std::shared_ptr EmployeeManagementService::getEmployee(const std::string& id) { } diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h index 89ba319..29ce7d3 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h +++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h @@ -47,6 +47,6 @@ public: //Employee Management void createEmployee(Enums::EmployeeType, const std::string&, const std::string&, const std::string&, const std::string&); bool deactivateEmployee(const std::string&); - Employees getEmployees(); std::shared_ptr getEmployee(const std::string&); + Employees getEmployee(); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp index 56e27b0..cce72f7 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp @@ -8,10 +8,17 @@ bool EmployeeManagementService::deactivateEmployee(const std::string& id) { } -Employees EmployeeManagementService::getEmployees() -{ -} - std::shared_ptr EmployeeManagementService::getEmployee(const std::string& id) { } + +Employees EmployeeManagementService::getEmployees() +{ + Employees result; + auto& employee = m_dataStore.getEmployees(); + for (const auto& iterator : employee) + { + result.push_back(iterator.second); + } + return result; +} \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp index 99e3bc0..b3f6ec1 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.cpp @@ -48,11 +48,11 @@ bool EmployeeMenu::handleOperation(int choice) break; case 6: m_zenvyController.viewTicketHistory(); - break; + break;*/ case 7: - m_zenvyController.viewEmployees(); + viewEmployees(); break; - case 8: + /*case 8: m_zenvyController.searchEmployee(); break; case 9: @@ -76,4 +76,43 @@ bool EmployeeMenu::handleOperation(int choice) std::cout << "Enter a valid choice!" << std::endl; } return true; +} + +void EmployeeMenu::viewEmployees() +{ + std::cout << "EMPID\t\tName\t\tRole\t\tTeamId\t\tEmail\t\tPhone\t\t"; + auto employee = m_zenvyController->getEmployee(); + for (const auto& iterator : employee) + { + if (iterator->getEmployeeAccountStatus() == Enums::AccountStatus::ACTIVE) + { + std::cout << iterator->getEmployeeId() << "\t" + << iterator->getEmployeeName() << "\t" + << enumToString(iterator->getEmployeeType()) << "\t" + << iterator->getEmployeeTeamId() << "\t" + << iterator->getEmployeeEmail() << "\t" + << iterator->getEmployeePhone() << std::endl; + } + } +} + +std::string enumToString(Enums::EmployeeType type) +{ + switch (type) + { + case Enums::EmployeeType::IT: + return "IT Executive"; + case Enums::EmployeeType::FINANCE: + return "Finance Executive"; + case Enums::EmployeeType::GENERAL: + return "General Employee"; + case Enums::EmployeeType::HR: + return "HR"; + case Enums::EmployeeType::TAG: + return "Talent Acquacition Executive"; + case Enums::EmployeeType::TEAM: + return "Team Executive"; + case Enums::EmployeeType::INVALID: + return "Invalid"; + } } \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h index f082b66..3ed9b3a 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h @@ -10,5 +10,6 @@ public: EmployeeMenu() : m_zenvyController(std::make_shared()) {}; void run(); bool handleOperation(int); + void viewEmployees(); };