forked from DOMjudge/DOMjura
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubmission.cpp
82 lines (69 loc) · 2.02 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#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