/** * Handler for the HMI language * $Id$ * $HeadURL$ * $Author$ */ #include "object_criterium.h" #include "object_evaluation_element.h" namespace Evaluations { ObjectCriterium::ObjectCriterium(const std::shared_ptr &ddsHandler, const std::shared_ptr &db) : m_ddsHandler(ddsHandler) , m_db(db) , m_logger(getLogger("ObjectCriterium")) { } ObjectCriterium::~ObjectCriterium() { qDeleteAll(m_elementsMap); } Core::FunctionReplyObject ObjectCriterium::createObject(const Database::EvlCriterium &data) { m_data = data; if (m_data.id <= 0) { if (!m_db->insert(m_data)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting EvlCriterium-data into database")); } // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectCriterium::updateObject(const Database::EvlCriterium &data) { if (!m_db->update(data)) return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating EvlCriterium-data into database")); m_data = data; onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectCriterium::removeObject() { if (!m_db->removeEvlCriterium(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "EvlCriterium with id %1 can not be removed")).arg(m_data.id); for (ObjectEvaluationElement *oee : qAsConst(m_elementsMap)) oee->removeObject(); qDeleteAll(m_elementsMap); m_elementsMap.clear(); m_ddsHandler->dts()->removeEvaluationCriteriumByKey(m_data.id); return Core::FunctionReplyObject(m_data.id); } void ObjectCriterium::onPublishData() { Evaluations::EvaluationCriterium ddsData; ddsData.id(m_data.id); ddsData.name(m_data.name.toStdString()); ddsData.description(m_data.description.toStdString()); ddsData.operatorId(m_data.operatorId); INFO_LOG(m_logger) << "Publish EvlCriterium-data to dds (" << m_data.id << ") ..."; if (!m_ddsHandler->dts()->publish(ddsData)) ERROR_LOG(m_logger) << "Error publishing EvlCriterium-data to dds"; } void ObjectCriterium::addElement(ObjectEvaluationElement *oee) { m_elementsMap.insert(oee->getId(), oee); } } // Namespace Evaluations