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

76 lines
2.3 KiB
C++
Executable File

/**
* Convert db structures to dds structures
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-07-20
*/
#pragma once
#include <ExerciseManagement/exm_db.h>
#include <ExerciseManagement/exm.hpp>
#include <Common/ProjectConfig/project_defines.h>
#include <LtsUtilsCore/dds_vector.h>
namespace ExerciseManagement
{
namespace Database
{
inline Exercise convert(const ExmExercise &dbData)
{
ExerciseManagement::Exercise ddsData;
ddsData.id(dbData.id);
ddsData.name(dbData.name.toStdString());
// behaviour of QDateTime::toMSecsSinceEpoch() is undefinded if not valid:
if (dbData.beginTime.isValid())
ddsData.beginTime(dbData.beginTime.toMSecsSinceEpoch());
if (dbData.endTime.isValid())
ddsData.endTime(dbData.endTime.toMSecsSinceEpoch());
if (dbData.created.isValid())
ddsData.created(dbData.created.toMSecsSinceEpoch());
if (dbData.startTime.isValid())
ddsData.startTime(dbData.startTime.toMSecsSinceEpoch());
if (dbData.stopTime.isValid())
ddsData.stopTime(dbData.stopTime.toMSecsSinceEpoch());
ddsData.trainingAreaId(dbData.trainingAreaId);
if (!dbData.radioGroupId.isNull() && dbData.radioGroupId.canConvert<unsigned int>())
ddsData.radioGroupId(dbData.radioGroupId.toUInt());
ddsData.activePhaseId(dbData.activePhaseId);
ddsData.symbolFillTypeId(dbData.symbolFillTypeId);
ddsData.linkedExerciseId(dbData.linkedExerciseId);
if (!dbData.defaultTimeZone.isEmpty())
ddsData.defaultTimeZone(dbData.defaultTimeZone.at(0).toLatin1());
else
ddsData.defaultTimeZone('Z');
ddsData.sendToWMS(dbData.sendToWms);
ddsData.transferred(dbData.transferred);
ddsData.hasHlaInterface(dbData.hasHlaInterface);
ddsData.state(dbData.exerciseStateId);
ddsData.forces(dbData.forces.toStdString());
ddsData.description(dbData.description.toStdString());
ddsData.partitionName(IDL::exercisePartition(dbData.id));
return ddsData;
}
inline ExercisePhase convert(const ExmExercisePhase &dbData)
{
ExerciseManagement::ExercisePhase ddsData;
ddsData.id(dbData.id);
ddsData.name(dbData.name.toStdString());
ddsData.description(dbData.description.toStdString());
ddsData.beginTime(dbData.beginTime.toMSecsSinceEpoch());
ddsData.endTime(dbData.endTime.toMSecsSinceEpoch());
ddsData.exerciseId(dbData.exerciseId);
return ddsData;
}
}
}