#include "version4upgrader.h" Version4Upgrader::Version4Upgrader() { } QJsonObject Version4Upgrader::UpgradeDay(QJsonObject day) { if (!day["validate"].toBool(false)) { day["not_working"] = true; } else { day["not_working"] = false; } return day; } QJsonObject Version4Upgrader::UpgradeDayTemplate(QJsonObject day) { day["not_working"] = false; return day; } QJsonObject Version4Upgrader::UpgradeTemplate(QJsonObject week) { QJsonObject newTemplate; newTemplate["monday"] = UpgradeDayTemplate(week["monday"].toObject()); newTemplate["tuesday"] = UpgradeDayTemplate(week["tuesday"].toObject()); newTemplate["wednesday"] = UpgradeDayTemplate(week["wednesday"].toObject()); newTemplate["thurday"] = UpgradeDayTemplate(week["thurday"].toObject()); newTemplate["friday"] = UpgradeDayTemplate(week["friday"].toObject()); newTemplate["weekNumber"] = week["weekNumber"].toInt(); return newTemplate; } QJsonArray Version4Upgrader::UpgradeWeeks(QJsonArray weeks) { QJsonArray newWeeks; foreach (QJsonValue value, weeks) { QJsonObject week = value.toObject(); QJsonObject newWeek; newWeek["monday"] = UpgradeDay(week["monday"].toObject()); newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject()); newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject()); newWeek["thurday"] = UpgradeDay(week["thurday"].toObject()); newWeek["friday"] = UpgradeDay(week["friday"].toObject()); newWeek["weekNumber"] = week["weekNumber"].toInt(); newWeeks.append(newWeek); } return newWeeks; } QJsonArray Version4Upgrader::UpgradeYears(QJsonArray years) { QJsonArray newYears; foreach (QJsonValue year, years) { QJsonObject newYear; newYear["number"] = year["number"]; newYear["weeks"] = UpgradeWeeks(year["weeks"].toArray()); newYears.append(newYear); } return newYears; } QJsonObject Version4Upgrader::Upgrade(QJsonObject old) { if (old["version"].toInt() == 3) { QJsonObject newVersion; newVersion["version"] = 4; newVersion["template"] = UpgradeTemplate(old["template"].toObject()); newVersion["years"] = UpgradeYears(old["years"].toArray()); return newVersion; } return old; }