Added FileManager DLL and cleanup code

<SRS> SRS02 : Employee Management </SRS>

<Changes>
 - Created FileIO for reading and writing files
 - Created FileManager to use FileIO
 - Set up Trenser.FileManager as a DLL
 - Linked DLL with Trenser.Zenvy project
 - Fixed duplicate function issue by marking deactivateEmployee as inline
 - Cleaned up unused methods in controller and service
</Changes>

<Review>
Smitha Mohan
</Review>
This commit is contained in:
2026-04-09 20:32:48 +05:30
parent 2031f510d5
commit d29e38ef75
13 changed files with 137 additions and 13 deletions
@@ -102,12 +102,17 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories);..\..\Trenser.FileManager\Trenser.FileManager</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\..\Trenser.FileManager\$(IntDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Trenser.FileManager.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "..\..\Trenser.FileManager\$(IntDir)Trenser.FileManager.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -117,11 +122,17 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>;..\..\Trenser.FileManager\Trenser.FileManager</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\..\Trenser.FileManager\$(IntDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Trenser.FileManager.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "..\..\Trenser.FileManager\$(IntDir)Trenser.FileManager.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="controllers\ZenvyController.cpp" />
@@ -195,6 +195,9 @@
<ClCompile Include="views\MenuHelper.cpp">
<Filter>Views</Filter>
</ClCompile>
<ClCompile Include="utilities\AuthorizationHelper.cpp">
<Filter>Services</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="services\AuthenticationManagementService.h">
@@ -344,6 +347,9 @@
<ClInclude Include="views\MenuHelper.h">
<Filter>Views</Filter>
</ClInclude>
<ClInclude Include="utilities\AuthorizationHelper.h">
<Filter>Services</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClInclude Include="models\Employee.h">
@@ -42,10 +42,6 @@ std::shared_ptr<const Employee> ZenvyController::getCurrentEmployee()
return m_employeeManagementService->getCurrentEmployee();
}
std::shared_ptr<const Employee> ZenvyController::getEmployee(const std::string& id)
{
}
Employees ZenvyController::getEmployees()
{
return m_employeeManagementService->getEmployees();
@@ -48,7 +48,6 @@ public:
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> getEmployee(const std::string&);
std::shared_ptr<const Employee> getCurrentEmployee();
void updateProfile(const std::string&,const std::string&);
@@ -116,11 +116,20 @@ bool EmployeeManagementService::deactivateEmployee(const std::string& id)
Employees EmployeeManagementService::getEmployees()
{
}
std::shared_ptr<const Employee> EmployeeManagementService::getEmployee(const std::string& id)
{
Employees result;
auto& employees = m_dataStore.getEmployees();
if (employees.size() <= 0)
{
return result;
}
for (const auto& iterator : employees)
{
if (iterator.second->getEmployeeAccountStatus() == Enums::AccountStatus::ACTIVE)
{
result.push_back(iterator.second);
}
}
return result;
}
std::shared_ptr<const Employee> EmployeeManagementService::getCurrentEmployee()
@@ -15,7 +15,6 @@ public:
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> getEmployee(const std::string&);
void updateProfile(const std::string&,const std::string&);
std::shared_ptr<const Employee> getCurrentEmployee();
};
@@ -76,7 +76,7 @@ inline std::map<int, std::shared_ptr<const Employee>> listEmployees(const std::s
return employeeList;
}
void deactivateEmployee(const std::shared_ptr<ZenvyController>& controller)
inline void deactivateEmployee(const std::shared_ptr<ZenvyController>& controller)
{
auto employeeList = listEmployees(controller);
if (employeeList.empty())