OptimisationProblem/structures/Employees.cpp
2023-07-17 01:19:10 +03:00

46 lines
1.1 KiB
C++

#include "Employees.h"
#include "Centers.h"
Employees::Employees(std::string basePath, Centers& centers)
{
std::string filePath = basePath + "/Employees.csv";
std::cout << "Reading file " << filePath << " for Employees\n";
std::ifstream file;
file.open(filePath, std::ios::in);
if (!file.is_open())
throw std::runtime_error("Invalid file path");
std::string line;
while (getline(file, line))
{
if (line.empty())
continue;
std::istringstream stream(line);
std::string id;
getline(stream, id, ',');
std::string centerId;
getline(stream, centerId, ',');
//std::cout << "Employee " << id << ", Center: " << centerId << "\n";
Center* center = centers.get(stoi(centerId));
std::string competence;
getline(stream, competence, ',');
std::string profession;
getline(stream, profession, ',');
if (center == nullptr)
throw std::runtime_error("Invalid center");
Employee* employee = new Employee{ stoi(id), center, competence, profession };
center->addEmployee(employee);
this->employees.push_back(employee);
}
file.close();
}