Files
qt5-legatus-legacy/Lts/Services/InfrastructureManagement/convert_db_to_dds.h
T
2026-08-13 18:33:10 +02:00

89 lines
2.9 KiB
C++
Executable File

/**
* Convert db structures to dds structures
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-07-20
*/
#pragma once
#include <InfrastructureManagement/ism_db.h>
#include <InfrastructureManagement/ism.hpp>
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<unsigned int>())
ddsData.exerciseId(dbData.exerciseId.toUInt());
return ddsData;
}
} // namespace Database
} // namespace InfrastructureManagement