89 lines
3.0 KiB
C++
Executable File
89 lines
3.0 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
|