/** * Convert db structures to dds structures * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-07-20 */ #pragma once #include #include #include #include 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()) 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; } } }