@@ -79,66 +79,70 @@ async Task Checker(int id, CancellationToken token = default)
79
79
{
80
80
( SubmissionType type , AnswerResult ans ) = await instanceRepository . VerifyAnswer ( item , token ) ;
81
81
82
- if ( ans == AnswerResult . NotFound )
82
+ switch ( ans )
83
83
{
84
- logger . Log (
85
- Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_UnknownInstance ) ,
86
- item . Team . Name ,
87
- item . GameChallenge . Title ] ,
88
- item . User ,
89
- TaskStatus . NotFound , LogLevel . Warning ) ;
90
- }
91
- else if ( ans == AnswerResult . Accepted )
92
- {
93
- logger . Log (
94
- Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_AnswerAccepted ) ,
95
- item . Team . Name ,
96
- item . GameChallenge . Title ,
97
- item . Answer ] ,
98
- item . User , TaskStatus . Success , LogLevel . Information ) ;
99
-
100
- await eventRepository . AddEvent (
101
- GameEvent . FromSubmission ( item , type , ans , Program . StaticLocalizer ) , token ) ;
102
-
103
- // only flush the scoreboard if the contest is not ended and the submission is accepted
104
- if ( item . Game . EndTimeUtc > item . SubmitTimeUtc )
105
- await cacheHelper . FlushScoreboardCache ( item . GameId , token ) ;
106
- }
107
- else
108
- {
109
- logger . Log (
110
- Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_AnswerRejected ) ,
111
- item . Team . Name ,
112
- item . GameChallenge . Title ,
113
- item . Answer ] ,
114
- item . User , TaskStatus . Failed , LogLevel . Information ) ;
115
-
116
- await eventRepository . AddEvent (
117
- GameEvent . FromSubmission ( item , type , ans , Program . StaticLocalizer ) , token ) ;
118
-
119
- CheatCheckInfo result = await instanceRepository . CheckCheat ( item , token ) ;
120
- ans = result . AnswerResult ;
121
-
122
- if ( ans == AnswerResult . CheatDetected )
123
- {
84
+ case AnswerResult . NotFound :
124
85
logger . Log (
125
- Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_CheatDetected ) ,
86
+ Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_UnknownInstance ) ,
126
87
item . Team . Name ,
127
- item . GameChallenge . Title ,
128
- result . SourceTeamName ?? "" ] ,
129
- item . User , TaskStatus . Success , LogLevel . Information ) ;
130
-
131
- await eventRepository . AddEvent (
132
- new ( )
88
+ item . GameChallenge . Title ] ,
89
+ item . User ,
90
+ TaskStatus . NotFound , LogLevel . Warning ) ;
91
+ break ;
92
+ case AnswerResult . Accepted :
93
+ {
94
+ logger . Log (
95
+ Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_AnswerAccepted ) ,
96
+ item . Team . Name ,
97
+ item . GameChallenge . Title ,
98
+ item . Answer ] ,
99
+ item . User , TaskStatus . Success , LogLevel . Information ) ;
100
+
101
+ await eventRepository . AddEvent (
102
+ GameEvent . FromSubmission ( item , type , ans , Program . StaticLocalizer ) , token ) ;
103
+
104
+ // only flush the scoreboard if the contest is not ended and the submission is accepted
105
+ if ( item . Game . EndTimeUtc > item . SubmitTimeUtc )
106
+ await cacheHelper . FlushScoreboardCache ( item . GameId , token ) ;
107
+ break ;
108
+ }
109
+ default :
110
+ {
111
+ logger . Log (
112
+ Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_AnswerRejected ) ,
113
+ item . Team . Name ,
114
+ item . GameChallenge . Title ,
115
+ item . Answer ] ,
116
+ item . User , TaskStatus . Failed , LogLevel . Information ) ;
117
+
118
+ await eventRepository . AddEvent (
119
+ GameEvent . FromSubmission ( item , type , ans , Program . StaticLocalizer ) , token ) ;
120
+
121
+ CheatCheckInfo result = await instanceRepository . CheckCheat ( item , token ) ;
122
+ ans = result . AnswerResult ;
123
+
124
+ if ( ans == AnswerResult . CheatDetected )
133
125
{
134
- Type = EventType . CheatDetected ,
135
- Values =
136
- [ item . GameChallenge . Title , item . Team . Name , result . SourceTeamName ?? "" ] ,
137
- TeamId = item . TeamId ,
138
- UserId = item . UserId ,
139
- GameId = item . GameId
140
- } , token ) ;
141
- }
126
+ logger . Log (
127
+ Program . StaticLocalizer [ nameof ( Resources . Program . FlagChecker_CheatDetected ) ,
128
+ item . Team . Name ,
129
+ item . GameChallenge . Title ,
130
+ result . SourceTeamName ?? "" ] ,
131
+ item . User , TaskStatus . Success , LogLevel . Information ) ;
132
+
133
+ await eventRepository . AddEvent (
134
+ new ( )
135
+ {
136
+ Type = EventType . CheatDetected ,
137
+ Values =
138
+ [ item . GameChallenge . Title , item . Team . Name , result . SourceTeamName ?? "" ] ,
139
+ TeamId = item . TeamId ,
140
+ UserId = item . UserId ,
141
+ GameId = item . GameId
142
+ } , token ) ;
143
+ }
144
+ break ;
145
+ }
142
146
}
143
147
144
148
if ( item . Game . EndTimeUtc > DateTimeOffset . UtcNow
0 commit comments