/** * Map description object * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2016-03-03 */ #include "object_map_description.h" #include "main_handler.h" namespace AssetManagement { ObjectMapDescription::ObjectMapDescription(MainHandler *mainHandler) : m_mainHandler(mainHandler) , m_order(-1) , m_logger(getLogger("ObjectMapDescription")) { } bool ObjectMapDescription::isValid() const { return m_data.id > 0; } Core::FunctionReplyObject ObjectMapDescription::createObject(const MapDescription &data, int order) { m_data = data; if (m_data.id <= 0) { m_data.isUsed = false; Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = order; if (!m_mainHandler->db()->insert(dbData)) return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmMapDescription-data into database")); m_data.id = dbData.id; DEBUG_LOG(m_logger) << "New MapDescription Id: " << m_data.id; } else if (order != m_order && m_order >= 0) { Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = m_order; if (!m_mainHandler->db()->update(dbData)) return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmMapDescription-data into database")); } m_order = order; return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectMapDescription::updateObject(const MapDescription &data) { if (!isValid()) return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked")); Database::AsmMapDescription dbData(toDbData(data)); dbData.objOrder = m_order; if (!m_mainHandler->db()->update(dbData)) return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmMapDescription-data into database")); m_data = data; DEBUG_LOG(m_logger) << "Data changed for MapDescription Id: " << m_data.id; return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectMapDescription::removeObject() { if (!m_mainHandler->db()->removeAsmMapDescription(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "MapDescription with id %1 can not be removed")).arg(m_data.id); return Core::FunctionReplyObject(m_data.id); } // ------------------------------------------------------------------------------------------------------- // convert methods // ------------------------------------------------------------------------------------------------------- // AssetManagement::MapDescription => Database::AsmMapDescription Database::AsmMapDescription ObjectMapDescription::toDbData(const MapDescription &ddsData) { Database::AsmMapDescription dbData; dbData.id = ddsData.id; dbData.name = QString::fromStdString(ddsData.name); dbData.description = QString::fromStdString(ddsData.description); dbData.trainingAreaId = ddsData.trainingAreaId; dbData.mapTypeId = ddsData.mapTypeId; dbData.mapDescriptionTypeId = ddsData.mapDescriptionTypeId; dbData.url = QString::fromStdString(ddsData.url); dbData.minScale = ddsData.minScale; dbData.maxScale = ddsData.maxScale; return dbData; } // ------------------------------------------------------------------------------------------------------- // Database::AsmMapDescription => AssetManagement::MapDescription MapDescription ObjectMapDescription::toDdsData(const Database::AsmMapDescription &dbData) { MapDescription ddsData; ddsData.id = dbData.id; ddsData.name = dbData.name.toStdString(); ddsData.description = dbData.description.toStdString(); ddsData.trainingAreaId = dbData.trainingAreaId; ddsData.mapTypeId = dbData.mapTypeId; ddsData.mapDescriptionTypeId = dbData.mapDescriptionTypeId; ddsData.url = dbData.url.toStdString(); ddsData.minScale = dbData.minScale; ddsData.maxScale = dbData.maxScale; // init data not in db ddsData.isDeleted = false; ddsData.isUsed = false; return ddsData; } // ------------------------------------------------------------------------------------------------------- } // Namespace AssetManagement