diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp index e69de29..5aa1174 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp @@ -0,0 +1,4 @@ +int main() +{ + +} \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj index 88bb765..cf0bec3 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj +++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj @@ -102,7 +102,7 @@ true _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - $(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;%(AdditionalIncludeDirectories) + $(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;%(AdditionalIncludeDirectories) Console diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp index e81f26f..80f370f 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp @@ -1 +1,17 @@ #include "DataStore.h" + +DataStore& DataStore::getInstance() +{ + static DataStore dataStore; + return dataStore; +} + +logMap& DataStore::getLogs() +{ + return m_logs; +} + +employeeMap& DataStore::getEmployees() +{ + return m_employees; +} \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h index 09042e4..a9b8033 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h @@ -1,5 +1,39 @@ #pragma once +#include +#include +#include "Employee.h" +#include "Log.h" +#include "Timestamp.h" +#include "Admin.h" +#include "HRManager.h" +#include "GeneralEmployee.h" +#include "ITExecutive.h" +#include "FinanceExecutive.h" +#include "TeamExecutive.h" +#include "TalentExecutive.h" +#include "Team.h" +#include "Room.h" +#include "Ticket.h" +#include "JobListing.h" +#include "Notification.h" +#include "Announcement.h" + +using employeeMap = std::map>; +using logMap = std::map>; + class DataStore { -}; - +private: + std::shared_ptr m_authenticatedEmployee; + employeeMap m_employees; + logMap m_logs; + DataStore() = default; +public: + static DataStore& getInstance(); + DataStore(const DataStore&) = delete; + DataStore& operator=(const DataStore&) = delete; + DataStore(DataStore&&) = delete; + DataStore& operator=(DataStore&&) = delete; + employeeMap& getEmployees(); + logMap& getLogs(); +}; \ No newline at end of file diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Log.h b/Trenser.Zenvy/Trenser.Zenvy/models/Log.h index 9f05194..f2350b2 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/models/Log.h +++ b/Trenser.Zenvy/Trenser.Zenvy/models/Log.h @@ -9,8 +9,8 @@ private: std::string m_message; public: Log() : m_timestamp(), m_message("") {} - Log(const util::Timestamp& timestamp, const std::string& message) - : m_timestamp(timestamp), m_message(message) {} + Log(const std::string& message) + : m_timestamp(), m_message(message) {} const util::Timestamp& getTimestamp() const; const std::string& getMessage() const; void setTimestamp(const util::Timestamp& timestamp); diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp index 28458fa..1742a3d 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.cpp @@ -1 +1,12 @@ #include "LogService.h" +#include "Log.h" +#include "Factory.h" +#include "DataStore.h" + +void LogService::log(const std::string& message) +{ + DataStore& dataStore = DataStore::getInstance(); + logMap& logs = dataStore.getLogs(); + std::shared_ptr log = Factory::getObject(message); + logs.emplace(std::make_pair(log->getTimestamp(), log)); +} diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.h b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.h index f5b6105..6918b25 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/LogService.h +++ b/Trenser.Zenvy/Trenser.Zenvy/services/LogService.h @@ -1,5 +1,8 @@ #pragma once +#include "Log.h" class LogService { +public: + static void log(const std::string&); }; diff --git a/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.cpp b/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.cpp index 8faecf3..0f3b773 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.cpp @@ -1,11 +1 @@ #include "inputHelper.h" - -void util::readString(std::string& value) -{ - getline(std::cin >> std::ws, value); -} - -void util::pressEnter() -{ - system("pause"); -} diff --git a/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.h b/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.h index 604ae31..559acda 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.h +++ b/Trenser.Zenvy/Trenser.Zenvy/utilities/InputHelper.h @@ -1,4 +1,5 @@ #pragma once + #include #include #include @@ -6,18 +7,24 @@ namespace util { - template - void readValue(T& value) - { - std::cin >> value; - if (std::cin.fail()) - { - std::cin.clear(); - std::cin.ignore(std::numeric_limits::max(), '\n'); - throw std::runtime_error("Invalid Console Input"); - } - } + template + inline void read(T& value) + { + if (!(std::cin >> value)) + { + std::cin.clear(); + std::cin.ignore(std::numeric_limits::max(), '\n'); + throw std::runtime_error("Invalid console input"); + } + } - void readString(std::string&); - void pressEnter(); + inline void read(std::string& value) + { + std::getline(std::cin >> std::ws, value); + } + + inline void pressEnter() + { + system("pause"); + } } \ No newline at end of file