/** * 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; } } }