/** * Convert db structures to dds structures * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-07-20 */ #pragma once #include #include namespace InfrastructureManagement { namespace Database { inline MainStructureElement convert(const Database::IsmMainStructureElement &dbData) { MainStructureElement ddsData; ddsData.id = dbData.id; ddsData.name = dbData.name.toStdString(); ddsData.description = dbData.description.toStdString(); ddsData.geoPosition = Core::GeoPosition(dbData.geoPosition.x(), dbData.geoPosition.y(), dbData.geoPosition.z()); ddsData.angle = dbData.angle; ddsData.externalWlsId = dbData.externalWlsId; ddsData.groupId = dbData.groupId; ddsData.modelId = dbData.modelId; ddsData.properties = dbData.properties.toStdString(); // init data not in db ddsData.isDeleted = false; ddsData.isUsed = false; // TODO: fill additional data? //ddsData.structureElementId; //ddsData.elements; return ddsData; } inline StructureElement convert(const Database::IsmStructureElement &dbData) { StructureElement ddsData; ddsData.id = dbData.id; ddsData.name = dbData.name.toStdString(); ddsData.displayName = dbData.displayName.toStdString(); ddsData.mainStructureElementId = dbData.mainStructureElementId; ddsData.structureElementTypeId = dbData.structureElementTypeId; ddsData.path = dbData.path(); ddsData.mountingPointId = dbData.mountingPointId; ddsData.barcode = dbData.barcode.toStdString(); ddsData.relPosition = Core::RelativePosition(dbData.relPosition.x(), dbData.relPosition.y(), dbData.relPosition.z()); ddsData.mountingPointTypeId = dbData.mountingPointTypeId; ddsData.orientation = Core::Orientation(dbData.orientation.x(), dbData.orientation.y(), dbData.orientation.z()); ddsData.properties = dbData.properties.toStdString(); // init data not in db ddsData.isDeleted = false; ddsData.isUsed = false; return ddsData; } //-------------------------------------------------------------------------------------------------- inline MainSchedule convert(const Database::IsmMountingPointSchedule &dbData) { MainSchedule ddsData; ddsData.id = dbData.id; ddsData.name = dbData.name.toStdString(); ddsData.statusId = dbData.statusId; ddsData.timeCreated = dbData.timeCreated.toMSecsSinceEpoch(); if (!dbData.timeStart.isNull() && dbData.timeStart.isValid()) ddsData.timeStart = dbData.timeStart.toMSecsSinceEpoch(); if (!dbData.timeEnd.isNull() && dbData.timeEnd.isValid()) ddsData.timeEnd = dbData.timeEnd.toMSecsSinceEpoch(); if (!dbData.exerciseId.isNull() && dbData.exerciseId.canConvert()) ddsData.exerciseId = dbData.exerciseId.toUInt(); return ddsData; } } // namespace Database } // namespace InfrastructureManagement