#include "object_emergency_call.h" #include "logger.h" #include "initialization.h" namespace AlarmManagement{ ObjectEmergencyCall::ObjectEmergencyCall(Initialization *mainHandler, QObject *parent) : QObject(parent) , m_mainHandler(mainHandler) , m_logger(getLogger("ObjectEmergencyCall")) { } ObjectEmergencyCall::~ObjectEmergencyCall() { if (m_data.id > 0) m_mainHandler->dds()->dtsAlm()->removeAlarmConfigByKey(m_data.id); } Core::FunctionReplyObject ObjectEmergencyCall::createObject(const Database::AlmEmergencyCall &data) { m_data = data; if (m_data.id <= 0) { if (!m_mainHandler->db()->insert(m_data)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Order into database.")); WARNING_LOG(m_logger) << "New EmergencyCall created Id: " << m_data.id; } // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectEmergencyCall::updateObject(const Database::AlmEmergencyCall &data) { if (data.id <= 0) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Object not valid/blocked")); m_data = data; if (!m_mainHandler->db()->update(m_data)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Error updating EmergencyCall into database")); DEBUG_LOG(m_logger) << "Data changed for Changed Id: " << m_data.id; // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectEmergencyCall::removeObject() { if (!m_mainHandler->db()->removeAlmEmergencyCall(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "AlmEmergencyCall %1 can not be removed")).arg(m_data.id); return Core::FunctionReplyObject(m_data.id); } void ObjectEmergencyCall::onPublishData() { AlarmManagement::AlmEmergencyCall ddsData; ddsData.id(m_data.id); ddsData.sampleTime(m_data.sampleTime); ddsData.incomingTime(m_data.incomingTime); ddsData.name(m_data.name.toStdString()); ddsData.issi(m_data.issi); ddsData.position(Core::GeoPosition2D(m_data.position.x(), m_data.position.y())); ddsData.expired(m_data.expired); ddsData.deleted(m_data.deleted); ddsData.operatorId(m_data.operatorId); ddsData.comment(m_data.comment.toStdString()); INFO_LOG(m_logger) << "Publish AlmEmergencyCall-data to dds (" << m_data.id << ") ..."; if (!m_mainHandler->dds()->dtsAlm()->publish(ddsData)) ERROR_LOG(m_logger) << "Error publishing AlmEmergencyCall-data to dds"; } }// namespace AlarmManagement