c50700e70c
<SRS> SRS02 : Employee Management </SRS> <Changes> - Added header handling in FileManager load by skipping first line during deserialization - Added support for writing headers using T::getHeaders() in FileManager save - Implemented getHeaders() for Employee and GeneralEmployee models - Added saveEmployees functionality in EmployeeManagementService - Added persistStates method in ZenvyController - Added deserialization failure check with exception handling - Minor formatting cleanup in FileIO </Changes> <Review> Smitha Mohan </Review>
61 lines
2.7 KiB
C++
61 lines
2.7 KiB
C++
#pragma once
|
|
#include <memory>
|
|
#include <utility>
|
|
#include "AuthenticationManagementService.h"
|
|
#include "AttendanceManagementService.h"
|
|
#include "BookingManagementService.h"
|
|
#include "EmployeeManagementService.h"
|
|
#include "LeaveManagementService.h"
|
|
#include "NotificationManagementService.h"
|
|
#include "PayslipManagementService.h"
|
|
#include "TalentAcquisitionManagementService.h"
|
|
#include "TeamManagementService.h"
|
|
#include "TicketManagementService.h"
|
|
#include "Enums.h"
|
|
|
|
class ZenvyController
|
|
{
|
|
private:
|
|
std::shared_ptr<AuthenticationManagementService> m_authenticationManagementService;
|
|
std::shared_ptr<AttendanceManagementService> m_attendanceManagementService;
|
|
std::shared_ptr<BookingManagementService> m_bookingManagementService;
|
|
std::shared_ptr<EmployeeManagementService> m_employeeManagementService;
|
|
std::shared_ptr<LeaveManagementService> m_leaveManagementService;
|
|
std::shared_ptr<NotificationManagementService> m_notificationManagementService;
|
|
std::shared_ptr<PayslipManagementService> m_payslipManagementService;
|
|
std::shared_ptr<TalentAcquisitionManagementService> m_talentAcquisitionManagementService;
|
|
std::shared_ptr<TeamManagementService> m_teamManagementService;
|
|
std::shared_ptr<TicketManagementService> m_ticketManagementService;
|
|
public:
|
|
ZenvyController() :
|
|
m_authenticationManagementService(std::make_shared<AuthenticationManagementService>()),
|
|
m_attendanceManagementService(std::make_shared<AttendanceManagementService>()),
|
|
m_bookingManagementService(std::make_shared<BookingManagementService>()),
|
|
m_employeeManagementService(std::make_shared<EmployeeManagementService>()),
|
|
m_leaveManagementService(std::make_shared<LeaveManagementService>()),
|
|
m_notificationManagementService(std::make_shared<NotificationManagementService>()),
|
|
m_payslipManagementService(std::make_shared<PayslipManagementService>()),
|
|
m_talentAcquisitionManagementService(std::make_shared<TalentAcquisitionManagementService>()),
|
|
m_teamManagementService(std::make_shared<TeamManagementService>()),
|
|
m_ticketManagementService(std::make_shared<TicketManagementService>()) {};
|
|
|
|
//Authentication
|
|
AuthenticationDTO login(const std::string& email, const std::string& password);
|
|
void logout();
|
|
void changePassword(const std::string&);
|
|
|
|
//Employee Management
|
|
void createEmployee(Enums::EmployeeType, Enums::EmployeeDesignation, const std::string&, const std::string&, const std::string&);
|
|
bool deactivateEmployee(const std::string&);
|
|
Employees getEmployees();
|
|
std::shared_ptr<const Employee> getCurrentEmployee();
|
|
void updateProfile(const std::string&,const std::string&);
|
|
|
|
//Payslip management
|
|
void updateSalary(const std::string&, double, double, double, double, double);
|
|
|
|
//File Management
|
|
void loadStates();
|
|
void persistStates();
|
|
};
|