Switch to C++ and Qt
This commit is contained in:
70
version3upgrader.cpp
Normal file
70
version3upgrader.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#include "version3upgrader.h"
|
||||
|
||||
Version3Upgrader::Version3Upgrader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QJsonObject Version3Upgrader::UpgradeDay(QJsonObject day)
|
||||
{
|
||||
QTime start(12,0,0,0);
|
||||
QTime end = start.addSecs(day["break"].toInt(45) * 60);
|
||||
QJsonObject newDay;
|
||||
newDay["breaks"] = QJsonArray {
|
||||
QJsonObject {
|
||||
{"start", start.toString(Qt::DateFormat::ISODate)},
|
||||
{"end", end.toString(Qt::DateFormat::ISODate)}
|
||||
}
|
||||
};
|
||||
newDay["start"] = day["start"].toString();
|
||||
newDay["end"] = day["end"].toString();
|
||||
newDay["validate"] = day["validate"].toBool(false);
|
||||
return newDay;
|
||||
}
|
||||
|
||||
QJsonObject Version3Upgrader::UpgradeTemplate(QJsonObject week)
|
||||
{
|
||||
QJsonObject newTemplate;
|
||||
newTemplate["monday"] = UpgradeDay(week["monday"].toObject());
|
||||
newTemplate["tuesday"] = UpgradeDay(week["tuesday"].toObject());
|
||||
newTemplate["wednesday"] = UpgradeDay(week["wednesday"].toObject());
|
||||
newTemplate["thurday"] = UpgradeDay(week["thurday"].toObject());
|
||||
newTemplate["friday"] = UpgradeDay(week["friday"].toObject());
|
||||
newTemplate["weekNumber"] = week["weekNumber"].toInt();
|
||||
return newTemplate;
|
||||
}
|
||||
|
||||
QJsonArray Version3Upgrader::UpgradeWeeks(QJsonArray weeks)
|
||||
{
|
||||
QDate d = QDate::currentDate();
|
||||
QJsonArray years;
|
||||
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);
|
||||
}
|
||||
QJsonObject year;
|
||||
year["number"] = d.year();
|
||||
year["weeks"] = newWeeks;
|
||||
years.append(year);
|
||||
return years;
|
||||
}
|
||||
|
||||
QJsonObject Version3Upgrader::Upgrade(QJsonObject old)
|
||||
{
|
||||
if (old["version"].toInt() == 2) {
|
||||
QJsonObject newVersion;
|
||||
newVersion["version"] = 3;
|
||||
newVersion["template"] = UpgradeTemplate(old["template"].toObject());
|
||||
newVersion["years"] = UpgradeWeeks(old["weeks"].toArray());
|
||||
return newVersion;
|
||||
}
|
||||
return old;
|
||||
}
|
||||
Reference in New Issue
Block a user