451ed4fec2
<SRS>SRS02 : Employee Management </SRS> <Changes> - Implemented serialization and deserialization for Employee and GeneralEmployee models - Added FileManager integration to load employees from CSV files - Introduced ApplicationConfig entries for employee file paths - Updated Employee ID handling (getEmployeeId → getId) across project - Modified FileIO to auto-create file if not found instead of throwing exception - Added constructors for all employee types to support deserialization - Implemented loadEmployees in service and loadStates in controller - Ensured default admin creation if none exists during load - Added StringHelper utility for extracting numeric IDs - Extended Enums with string conversion and parsing utilities - Added initial CSV files for Employee and GeneralEmployee data - Improved login error message formatting and minor cleanup - Setup gitignore to not track csv files </Changes>
61 lines
2.2 KiB
C++
61 lines
2.2 KiB
C++
#include <sstream>
|
|
#include "GeneralEmployee.h"
|
|
#include "Factory.h"
|
|
|
|
Enums::EmployeeDesignation GeneralEmployee::getDesignation() const
|
|
{
|
|
return m_designation;
|
|
}
|
|
|
|
void GeneralEmployee::setDesignation(Enums::EmployeeDesignation designation)
|
|
{
|
|
m_designation = designation;
|
|
}
|
|
|
|
std::string GeneralEmployee::serialize() const
|
|
{
|
|
std::ostringstream serializedEmployee;
|
|
serializedEmployee << m_id << ','
|
|
<< m_email << ','
|
|
<< m_name << ','
|
|
<< m_phone << ','
|
|
<< m_password << ','
|
|
<< m_teamId << ','
|
|
<< Enums::getTeamStatusString(m_teamStatus) << ','
|
|
<< Enums::getAccountStatusString(m_accountStatus) << ','
|
|
<< Enums::getEmployeeTypeString(m_employeeType) << ','
|
|
<< Enums::getEmployeeDesignationString(m_designation);
|
|
return serializedEmployee.str();
|
|
}
|
|
|
|
std::shared_ptr<GeneralEmployee> GeneralEmployee::deserialize(const std::string& record)
|
|
{
|
|
std::string id, name, phone, password, email;
|
|
std::string teamId, teamStatusString, accountStatusString, employeeTypeString, employeeDesignationString;
|
|
std::istringstream serializedEmployee(record);
|
|
getline(serializedEmployee, id, ',');
|
|
getline(serializedEmployee, email, ',');
|
|
getline(serializedEmployee, name, ',');
|
|
getline(serializedEmployee, phone, ',');
|
|
getline(serializedEmployee, password, ',');
|
|
getline(serializedEmployee, teamId, ',');
|
|
getline(serializedEmployee, teamStatusString, ',');
|
|
getline(serializedEmployee, accountStatusString, ',');
|
|
getline(serializedEmployee, employeeTypeString, ',');
|
|
getline(serializedEmployee, employeeDesignationString, ',');
|
|
Enums::TeamStatus teamStatus = Enums::getTeamStatus(teamStatusString);
|
|
Enums::AccountStatus accountStatus = Enums::getAccountStatus(accountStatusString);
|
|
Enums::EmployeeType employeeType = Enums::getEmployeeType(employeeTypeString);
|
|
Enums::EmployeeDesignation employeeDesignation = Enums::getEmployeeDesignation(employeeDesignationString);
|
|
return Factory::getObject<GeneralEmployee>(
|
|
id,
|
|
name,
|
|
phone,
|
|
password,
|
|
email,
|
|
teamId,
|
|
teamStatus,
|
|
employeeDesignation,
|
|
accountStatus
|
|
);
|
|
} |