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