-
Notifications
You must be signed in to change notification settings - Fork 1
/
submission.cpp
65 lines (52 loc) · 1.52 KB
/
submission.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "submission.h"
#include <QJsonObject>
#include "team.h"
#include "problem.h"
#include "contest.h"
namespace DJ {
namespace Model {
Submission::Submission(QJsonObject submission,
QHash<QString, Team *> teams,
QHash<QString, Problem *> problems,
QObject *parent) : QObject(parent) {
this->id = submission.value("id").toString();
QString problemId = submission.value("problem_id").toString();
if (problems.contains(problemId)) {
this->problem = problems[problemId];
} else {
this->problem = nullptr;
}
QString teamId = submission.value("team_id").toString();
if (teams.contains(teamId)) {
this->team = teams[teamId];
} else {
this->team = nullptr;
}
this->time = QDateTime::fromString(submission.value("time").toString(), Qt::DateFormat::ISODate);
}
QString Submission::getId() {
return this->id;
}
Problem *Submission::getProblem() {
return this->problem;
}
Team *Submission::getTeam() {
return this->team;
}
QDateTime Submission::getTime() {
return this->time;
}
bool Submission::inTime(Contest *contest) {
if (!contest->getEnd().isValid()) {
return true;
}
return (this->getTime() >= contest->getStart() && this->getTime() <= contest->getEnd());
}
bool Submission::inFreeze(Contest *contest) {
if (!contest->getFreeze().isValid()) {
return false;
}
return (this->getTime() > contest->getFreeze());
}
} // namespace Model
} // namespace DJ