diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp index 162bdd2..ec69829 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp @@ -52,3 +52,17 @@ void ZenvyController::changePassword(const std::string& password) { m_authenticationManagementService->changePassword(password); } + +ZenvyController::~ZenvyController() +{ + delete m_authenticationManagementService; + delete m_attendanceManagementService; + delete m_bookingManagementService; + delete m_employeeManagememtService; + delete m_leaveManagementService; + delete m_notificationManagementService; + delete m_payslipManagementService; + delete m_talentAcquisitionManagementService; + delete m_teamManagementService; + delete m_ticketManagementService; +} diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h index 364ec49..e456409 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h +++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h @@ -6,7 +6,6 @@ */ #pragma once -#include #include #include "AuthenticationManagementService.h" #include "AttendanceManagementService.h" @@ -23,31 +22,30 @@ class ZenvyController { private: - std::shared_ptr m_authenticationManagementService; - std::shared_ptr m_attendanceManagementService; - std::shared_ptr m_bookingManagementService; - std::shared_ptr m_employeeManagememtService; - std::shared_ptr m_leaveManagementService; - std::shared_ptr m_notificationManagementService; - std::shared_ptr m_payslipManagementService; - std::shared_ptr m_talentAcquisitionManagementService; - std::shared_ptr m_teamManagementService; - std::shared_ptr m_ticketManagementService; + AuthenticationManagementService* m_authenticationManagementService; + AttendanceManagementService* m_attendanceManagementService; + BookingManagementService* m_bookingManagementService; + EmployeeManagememtService* m_employeeManagememtService; + LeaveManagementService* m_leaveManagementService; + NotificationManagementService* m_notificationManagementService; + PayslipManagementService* m_payslipManagementService; + TalentAcquisitionManagementService* m_talentAcquisitionManagementService; + TeamManagementService* m_teamManagementService; + TicketManagementService* m_ticketManagementService; public: - ZenvyController() : - m_authenticationManagementService(std::make_shared()), - m_attendanceManagementService(std::make_shared()), - m_bookingManagementService(std::make_shared()), - m_employeeManagememtService(std::make_shared()), - m_leaveManagementService(std::make_shared()), - m_notificationManagementService(std::make_shared()), - m_payslipManagementService(std::make_shared()), - m_talentAcquisitionManagementService(std::make_shared()), - m_teamManagementService(std::make_shared()), - m_ticketManagementService(std::make_shared()) {}; - - //Authentication - AuthenticationDTO login(const std::string& email, const std::string& password); - void logout(); - void changePassword(const std::string&); + ZenvyController() : + m_authenticationManagementService(new AuthenticationManagementService()), + m_attendanceManagementService(new AttendanceManagementService()), + m_bookingManagementService(new BookingManagementService()), + m_employeeManagememtService(new EmployeeManagememtService()), + m_leaveManagementService(new LeaveManagementService()), + m_notificationManagementService(new NotificationManagementService()), + m_payslipManagementService(new PayslipManagementService()), + m_talentAcquisitionManagementService(new TalentAcquisitionManagementService()), + m_teamManagementService(new TeamManagementService()), + m_ticketManagementService(new TicketManagementService()) {}; + AuthenticationDTO login(const std::string& email, const std::string& password); + void logout(); + void changePassword(const std::string&); + ~ZenvyController(); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp index 64694df..eb2a3b5 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp @@ -45,7 +45,7 @@ logMap& DataStore::getLogs() * std::shared_ptr& - reference to the authenticated employee object. */ -std::shared_ptr& DataStore::getAuthenticatedEmployee() +Employee*& DataStore::getAuthenticatedEmployee() { return m_authenticatedEmployee; } @@ -59,7 +59,7 @@ std::shared_ptr& DataStore::getAuthenticatedEmployee() * void - no return value. */ -void DataStore::setAuthenticatedEmployee(std::shared_ptr authenticatedEmployee) +void DataStore::setAuthenticatedEmployee(Employee* authenticatedEmployee) { m_authenticatedEmployee = authenticatedEmployee; } @@ -87,7 +87,7 @@ employeeMap& DataStore::getEmployees() * std::shared_ptr& - reference to the authenticated employee object. */ -std::shared_ptr& DataStore::getAuthenticatedUser() +Employee* DataStore::getAuthenticatedUser() { return m_authenticatedEmployee; } diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h index 603d49c..86e304e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h @@ -6,7 +6,6 @@ */ #pragma once -#include #include #include "Employee.h" #include "Log.h" @@ -26,13 +25,13 @@ #include "Announcement.h" #include "Faq.h" -using employeeMap = std::map>; -using logMap = std::map>; +using employeeMap = std::map; +using logMap = std::map; class DataStore { private: - std::shared_ptr m_authenticatedEmployee; + Employee* m_authenticatedEmployee; employeeMap m_employees; logMap m_logs; DataStore() = default; @@ -43,8 +42,8 @@ public: DataStore(DataStore&&) = delete; DataStore& operator=(DataStore&&) = delete; employeeMap& getEmployees(); - std::shared_ptr& getAuthenticatedUser(); + Employee* getAuthenticatedUser(); logMap& getLogs(); - std::shared_ptr& getAuthenticatedEmployee(); - void setAuthenticatedEmployee(std::shared_ptr < Employee>); + Employee*& getAuthenticatedEmployee(); + void setAuthenticatedEmployee(Employee*); }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/factories/Factory.h b/Trenser.Zenvy/Trenser.Zenvy/factories/Factory.h index f65c267..604a3f0 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/factories/Factory.h +++ b/Trenser.Zenvy/Trenser.Zenvy/factories/Factory.h @@ -6,7 +6,6 @@ */ #pragma once -#include #include class Factory @@ -24,8 +23,8 @@ public: */ template - static std::shared_ptr getObject(Args&&... args) + static T* getObject(Args&&... args) { - return std::make_shared(std::forward(args)...); + return T*(std::forward(args)...); } }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp index 6689689..5ac6682 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp @@ -26,7 +26,7 @@ const std::string& Booking::getEmployeeId() const return m_employeeId; } -std::shared_ptr Booking::getTeam() const +Team* Booking::getTeam() const { return m_team; } @@ -51,7 +51,7 @@ void Booking::setEmployeeId(const std::string& employeeId) m_employeeId = employeeId; } -void Booking::setTeam(std::shared_ptr team) +void Booking::setTeam(Team* team) { m_team = team; } diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h index f88c084..d99a5f3 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h @@ -6,7 +6,6 @@ */ #pragma once #include -#include #include "Team.h" #include "Timestamp.h" @@ -17,25 +16,24 @@ private: util::Timestamp m_startTime; util::Timestamp m_endTime; std::string m_employeeId; - std::shared_ptr m_team; + Team* m_team; public: - Booking() : m_id(""), m_startTime(), m_endTime(), m_employeeId(""), m_team(nullptr) {} + Booking() : m_id(""), m_startTime(), m_endTime(), m_employeeId(""), m_team(nullptr) {}; Booking(const std::string& id, const util::Timestamp& startTime, const util::Timestamp& endTime, const std::string& employeeId, - std::shared_ptr team) - : m_id(id), m_startTime(startTime), m_endTime(endTime), m_employeeId(employeeId), m_team(team) {} + Team* team) : m_id(id), m_startTime(startTime), m_endTime(endTime), m_employeeId(employeeId), m_team(team) {}; const std::string& getBookingId() const; const util::Timestamp& getStartTime() const; const util::Timestamp& getEndTime() const; const std::string& getEmployeeId() const; - std::shared_ptr getTeam() const; + Team* getTeam() const; void setBookingId(const std::string& id); void setStartTime(const util::Timestamp& startTime); void setEndTime(const util::Timestamp& endTime); void setEmployeeId(const std::string& employeeId); - void setTeam(std::shared_ptr team); + void setTeam(Team* team); double getDurationInHours() const; double getDurationInMinutes() const; }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp index 68c1963..a2b426e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp @@ -46,7 +46,7 @@ const std::string& Employee::getEmployeeTeamId() const return m_teamId; } -std::shared_ptr Employee::getPayroll() const +Payroll* Employee::getPayroll() const { return m_payroll; } @@ -101,12 +101,12 @@ void Employee::setEmployeeTeamId(const std::string& teamId) m_teamId = teamId; } -void Employee::setEmployeePayroll(std::shared_ptr payroll) +void Employee::setEmployeePayroll(Payroll* payroll) { m_payroll = payroll; } -void Employee::addPayslip(std::shared_ptr payslip) +void Employee::addPayslip(Payslip* payslip) { if (payslip) { @@ -114,7 +114,7 @@ void Employee::addPayslip(std::shared_ptr payslip) } } -void Employee::addAttendance(std::shared_ptr attendance) +void Employee::addAttendance(Attendance* attendance) { if (attendance) { @@ -122,7 +122,7 @@ void Employee::addAttendance(std::shared_ptr attendance) } } -void Employee::addLeave(std::shared_ptr leave) +void Employee::addLeave(Leave* leave) { if (leave) { diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h index 400eebd..e7ce4c7 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h @@ -6,16 +6,15 @@ */ #pragma once #include -#include #include #include "Payslip.h" #include "Attendance.h" #include "Leave.h" #include "Payroll.h" #include "Enums.h" -using payslipMap = std::map>; -using attendanceMap = std::map>>; -using leaveMap = std::map>; +using payslipMap = std::map; +using attendanceMap = std::map>; +using leaveMap = std::map; class Employee { @@ -28,7 +27,7 @@ private: Enums::AccountStatus m_accountStatus; Enums::TeamStatus m_teamStatus; std::string m_teamId; - std::shared_ptr m_payroll; + Payroll* m_payroll; payslipMap m_payslips; attendanceMap m_attendances; leaveMap m_leaves; @@ -42,7 +41,7 @@ public: const std::string& email, const std::string& teamId, Enums::EmployeeType employeeType, - std::shared_ptr payroll) + Payroll* payroll) : m_id(id), m_password(password), m_name(name), m_phone(phone), m_email(email), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(teamId), m_employeeType(employeeType), m_payroll(payroll) { } const std::string& getEmployeeId() const; const std::string& getEmployeePassword() const; @@ -52,7 +51,7 @@ public: Enums::AccountStatus getEmployeeAccountStatus() const; Enums::TeamStatus getEmployeeTeamStatus() const; const std::string& getEmployeeTeamId() const; - std::shared_ptr getPayroll() const; + Payroll* getPayroll() const; const payslipMap& getEmployeePayslips() const; const attendanceMap& getEmployeeAttendances() const; const leaveMap& getEmployeeLeaves() const; @@ -63,10 +62,10 @@ public: void setEmployeeAccountStatus(Enums::AccountStatus status); void setEmployeeTeamStatus(Enums::TeamStatus status); void setEmployeeTeamId(const std::string& teamId); - void setEmployeePayroll(std::shared_ptr payroll); - void addPayslip(std::shared_ptr payslip); - void addAttendance(std::shared_ptr attendance); - void addLeave(std::shared_ptr leave); + void setEmployeePayroll(Payroll* payroll); + void addPayslip(Payslip* payslip); + void addAttendance(Attendance* attendance); + void addLeave(Leave* leave); Enums::EmployeeType getEmployeeType() const; virtual ~Employee() = default; }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h index 2c40288..93a7d06 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h @@ -20,7 +20,7 @@ public: const std::string& phone, const std::string& email, const std::string& teamId, - std::shared_ptr payroll, + Payroll* payroll, Enums::EmployeeDesignation designation) : Employee(id, password, name, phone, email, teamId,Enums::EmployeeType::GENERAL, payroll), m_designation(designation) {} Enums::EmployeeDesignation getDesignation() const; void setDesignation(Enums::EmployeeDesignation designation); diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h index 10b6c57..db016a0 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h @@ -11,7 +11,7 @@ File: JobListing.h #include #include "Candidate.h" #include "Enums.h" -using candidateMap = std::map>; +using candidateMap = std::map; class JobListing { diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp index cb5abbb..0d697ed 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp @@ -33,7 +33,7 @@ void Room::setRoomName(const std::string& name) m_name = name; } -void Room::addBooking(std::shared_ptr booking) +void Room::addBooking(Booking* booking) { if (booking) { diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Room.h b/Trenser.Zenvy/Trenser.Zenvy/models/Room.h index 595ffaa..c412b58 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Room.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Room.h @@ -10,7 +10,7 @@ File: Room.h #include #include #include "Booking.h" -using bookingMap = std::map>; +using bookingMap = std::map; class Room { @@ -26,5 +26,5 @@ public: const bookingMap& getBookings() const; void setRoomId(const std::string& id); void setRoomName(const std::string& name); - void addBooking(std::shared_ptr booking); + void addBooking(Booking* booking); }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp index 4a26647..7ce86c2 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp @@ -18,7 +18,7 @@ const std::string& Team::getTeamName() const return m_name; } -std::shared_ptr Team::getTeamLead() const +Employee* Team::getTeamLead() const { return m_lead; } @@ -43,7 +43,7 @@ void Team::setTeamName(const std::string& name) m_name = name; } -void Team::setTeamLead(std::shared_ptr lead) +void Team::setTeamLead(Employee* lead) { m_lead = lead; } diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Team.h b/Trenser.Zenvy/Trenser.Zenvy/models/Team.h index e353aa3..7e3d818 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Team.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Team.h @@ -10,32 +10,32 @@ File: Team.h #include #include #include "Employee.h" -using employeeMap = std::map>; +using employeeMap = std::map; class Team { private: std::string m_id; std::string m_name; - std::shared_ptr m_lead; + Employee* m_lead; employeeMap m_employees; int m_maximumNumberOfEmployees; public: Team() : m_id(""), m_name(""), m_lead(nullptr), m_maximumNumberOfEmployees(0) {} Team(const std::string& id, const std::string& name, - std::shared_ptr lead, + Employee* lead, int maximumNumberOfEmployees) : m_id(id), m_name(name), m_lead(lead), m_maximumNumberOfEmployees(maximumNumberOfEmployees) { } const std::string& getTeamId() const; const std::string& getTeamName() const; - std::shared_ptr getTeamLead() const; + Employee* getTeamLead() const; const employeeMap& getEmployeesInTeam() const; int getMaximumNumberOfEmployeesInTeam() const; void setTeamId(const std::string& id); void setTeamName(const std::string& name); - void setTeamLead(std::shared_ptr lead); + void setTeamLead(Employee* lead); void setEmployeesInTeam(const employeeMap& employees); void setMaximumNumberOfEmployeesInTeam(int maximumNumberOfEmployees); }; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp index 642c868..294c3b8 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp @@ -43,7 +43,7 @@ AuthenticationDTO AuthenticationManagementService::login(const std::string& emai employeeType = employee.second->getEmployeeType(); if (employeeType == Enums::EmployeeType::GENERAL) { - std::shared_ptr generalEmployee = std::dynamic_pointer_cast(employee.second); + GeneralEmployee* generalEmployee = dynamic_cast(employee.second); if (generalEmployee) { employeeDesignation = generalEmployee->getDesignation(); @@ -77,7 +77,7 @@ AuthenticationDTO AuthenticationManagementService::login(const std::string& emai */ void AuthenticationManagementService::changePassword(const std::string& password) { - std::shared_ptr authenticatedUser = m_dataStore.getAuthenticatedUser(); + Employee* authenticatedUser = m_dataStore.getAuthenticatedUser(); if (authenticatedUser) { authenticatedUser->setEmployeePassword(password); @@ -99,10 +99,12 @@ void AuthenticationManagementService::changePassword(const std::string& password * runtime_error if no user is currently logged in */ void AuthenticationManagementService::logout() { - if (m_dataStore.getAuthenticatedUser()) { - m_dataStore.getAuthenticatedUser() = nullptr; + if (m_dataStore.getAuthenticatedEmployee()) + { + m_dataStore.getAuthenticatedEmployee() = nullptr; } - else { + else + { throw std::runtime_error("No user currently logged In..."); } } \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp index 3e77020..6917cda 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp @@ -14,6 +14,6 @@ void LogService::log(const std::string& message) { DataStore& dataStore = DataStore::getInstance(); logMap& logs = dataStore.getLogs(); - std::shared_ptr log = Factory::getObject(message); + Log* log = Factory::getObject(message); logs.emplace(std::make_pair(log->getTimestamp(), log)); } diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h index ed6a48b..6144d4e 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/AdminMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class AdminMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - AdminMenu() :m_zenvyController(std::make_shared()) {}; + AdminMenu() :m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h index 8611935..907ab82 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/EmployeeMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class EmployeeMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController m_zenvyController; public: - EmployeeMenu() : m_zenvyController(std::make_shared()) {}; + EmployeeMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h index d1c4d77..98dd6c8 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/FinanceExecutiveMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class FinanceExecutiveMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - FinanceExecutiveMenu() : m_zenvyController(std::make_shared()) {}; + FinanceExecutiveMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h index a3c1ff1..ed7c5fa 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/HRManagerMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class HRManagerMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - HRManagerMenu() : m_zenvyController(std::make_shared()) {}; + HRManagerMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h index 7447643..5d32d37 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/ITExecutiveMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class ITExecutiveMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - ITExecutiveMenu() : m_zenvyController(std::make_shared()) {}; + ITExecutiveMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h index 7cbee73..93946ae 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TalentExecutiveMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class TalentExecutiveMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - TalentExecutiveMenu() : m_zenvyController(std::make_shared < ZenvyController>()) {}; + TalentExecutiveMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h index 3f6d5f3..747b5d4 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamExecutiveMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class TeamExecutiveMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - TeamExecutiveMenu() : m_zenvyController(std::make_shared()) {}; + TeamExecutiveMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h index d2057aa..159f485 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/TeamLeadMenu.h @@ -6,15 +6,14 @@ */ #pragma once -#include #include"ZenvyController.h" class TeamLeadMenu { private: - std::shared_ptr m_zenvyController; + ZenvyController* m_zenvyController; public: - TeamLeadMenu() : m_zenvyController(std::make_shared()) {}; + TeamLeadMenu() : m_zenvyController(new ZenvyController()) {}; void run(); bool handleOperation(int); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp index 1f08092..cefe64a 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.cpp @@ -7,7 +7,6 @@ #include #include -#include #include #include "UserInterface.h" #include "AdminMenu.h" @@ -132,7 +131,6 @@ void UserInterface::login() } } util::clear(); - // Route to appropriate menu switch (employeeType) { case Enums::EmployeeType::ADMIN: @@ -191,4 +189,17 @@ void UserInterface::login() break; } m_controller->logout(); +} + +UserInterface::~UserInterface() +{ + delete m_controller; + delete m_employeeMenu; + delete m_adminMenu; + delete m_financeExecutiveMenu; + delete m_hrManagerMenu; + delete m_itExecutiveMenu; + delete m_talentExecutiveMenu; + delete m_teamExecutiveMenu; + delete m_teamLeadMenu; } \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h index cf9c924..e400ba6 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h +++ b/Trenser.Zenvy/Trenser.Zenvy/views/UserInterface.h @@ -6,7 +6,6 @@ */ #pragma once -#include #include #include "AdminMenu.h" #include "EmployeeMenu.h" @@ -21,27 +20,28 @@ class UserInterface { private: - std::shared_ptr m_controller; - std::shared_ptr m_employeeMenu; - std::shared_ptr m_adminMenu; - std::shared_ptr m_financeExecutiveMenu; - std::shared_ptr m_hrManagerMenu; - std::shared_ptr m_itExecutiveMenu; - std::shared_ptr m_talentExecutiveMenu; - std::shared_ptr m_teamExecutiveMenu; - std::shared_ptr m_teamLeadMenu; + ZenvyController* m_controller; + EmployeeMenu* m_employeeMenu; + AdminMenu* m_adminMenu; + FinanceExecutiveMenu* m_financeExecutiveMenu; + HRManagerMenu* m_hrManagerMenu; + ITExecutiveMenu* m_itExecutiveMenu; + TalentExecutiveMenu* m_talentExecutiveMenu; + TeamExecutiveMenu* m_teamExecutiveMenu; + TeamLeadMenu* m_teamLeadMenu; public: - UserInterface() : m_controller(std::make_shared()), - m_employeeMenu(std::make_shared()), - m_adminMenu(std::make_shared()), - m_financeExecutiveMenu(std::make_shared()), - m_hrManagerMenu(std::make_shared()), - m_itExecutiveMenu(std::make_shared()), - m_talentExecutiveMenu(std::make_shared()), - m_teamExecutiveMenu(std::make_shared()), - m_teamLeadMenu(std::make_shared()) {}; - void run(); - bool handleOperation(int choice); - void login(); -}; - + UserInterface() : + m_controller(new ZenvyController()), + m_employeeMenu(new EmployeeMenu()), + m_adminMenu(new AdminMenu()), + m_financeExecutiveMenu(new FinanceExecutiveMenu()), + m_hrManagerMenu(new HRManagerMenu()), + m_itExecutiveMenu(new ITExecutiveMenu()), + m_talentExecutiveMenu(new TalentExecutiveMenu()), + m_teamExecutiveMenu(new TeamExecutiveMenu()), + m_teamLeadMenu(new TeamLeadMenu()) {}; + void run(); + bool handleOperation(int choice); + void login(); + ~UserInterface(); +}; \ No newline at end of file