#include "wms_ecc_exercises.h" #include #include namespace EXCON { QJsonObject Exercises::toJson(const IWMS2ECC::Exercise &ex) const { QJsonObject obj; obj[QLatin1String("id")] = ex.id; obj[QLatin1String("actExercise")] = ex.actExercise; obj[QLatin1String("start")] = static_cast(ex.start); obj[QLatin1String("end")] = static_cast(ex.end); obj[QLatin1String("name")] = ex.name; obj[QLatin1String("state")] = ex.stateAsString; obj[QLatin1String("ok")] = m_ok; return obj; } IWMS2ECC::Exercise Exercises::fromJson(const QJsonObject &obj) { IWMS2ECC::Exercise ex; ex.id = obj[QLatin1String("id")].toInt(); ex.actExercise = obj[QLatin1String("actExercise")].toInt(); ex.start = static_cast(obj[QLatin1String("start")].toInt()); ex.end = static_cast(obj[QLatin1String("end")].toInt()); ex.name = obj[QLatin1String("name")].toString(); ex.stateAsString = obj[QLatin1String("state")].toString(); return ex; } QJsonObject Exercises::toJsonAll() const { QJsonArray arr; for (const IWMS2ECC::Exercise &ex : m_exercises) arr.append(toJson(ex)); QJsonObject obj; obj[QLatin1String("exMap")] = arr; obj[QLatin1String("ok")] = m_ok; return obj; } Exercises Exercises::fromJsonAll(const QJsonObject &map) { Exercises ex; const QJsonArray arr = map[QLatin1String("exMap")].toArray(); for (const QJsonValue &val : arr) { const IWMS2ECC::Exercise exinfo = fromJson(val.toObject()); ex.m_exercises.insert(exinfo.id, exinfo); } ex.m_ok = map[QLatin1String("ok")].toBool(); return ex; } QVariantMap Exercises::toVariantMap() const { QVariantMap vMap; vMap[QLatin1String("id")] = QVariant(m_exercise.id); vMap[QLatin1String("name")] = m_exercise.name; vMap[QLatin1String("start")] = QVariant(static_cast(m_exercise.start)); vMap[QLatin1String("end")] = QVariant(static_cast(m_exercise.end)); vMap[QLatin1String("state")] = m_exercise.stateAsString; vMap[QLatin1String("ok")] = QVariant(m_ok); return vMap; } Exercises Exercises::fromVariantMap(const QVariantMap &map) { Exercises ex; ex.m_exercise.id = map[QLatin1String("id")].toInt(); ex.m_exercise.name = map[QLatin1String("name")].toString(); ex.m_exercise.start = map[QLatin1String("start")].toLongLong(); ex.m_exercise.end = map[QLatin1String("end")].toLongLong(); ex.m_exercise.stateAsString = map[QLatin1String("state")].toString(); ex.m_ok = map[QLatin1String("ok")].toBool(); return ex; } QVariantMap Exercises::toVariantMapAll() const { QVariantMap vMap; for (IWMS2ECC::exerciseMap::ConstIterator it = m_exercises.begin(); it != m_exercises.end(); ++it) { m_exercise = it.value(); vMap.insert(QString::number(it.key()), QVariant(toVariantMap())); } QVariantMap retMap; retMap[QLatin1String("exeMap")] = QVariant(vMap); retMap[QLatin1String("ok")] = QVariant(m_ok); return retMap; } Exercises Exercises::fromVariantMapAll(const QVariantMap &map) { Exercises ex; const QVariantMap vMap = map[QLatin1String("exeMap")].toMap(); for (QVariantMap::ConstIterator it = vMap.begin(); it != vMap.end(); ++it) { int key = it.key().toInt(); IWMS2ECC::Exercise e = Exercises::fromVariantMap(it.value().toMap()).m_exercise; ex.m_exercises.insert(key, e); } ex.m_ok = map[QLatin1String("ok")].toBool(); return ex; } }