Skip to content

Commit

Permalink
fix: 清除和设置上架与截止计分时间,这次修好了
Browse files Browse the repository at this point in the history
  • Loading branch information
Lil-Ran committed Oct 2, 2024
1 parent 83d9ee3 commit 0d45af7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -330,14 +330,22 @@ const GameChallengeEdit: FC = () => {
<DateTimePicker
label="题目自动上架时间"
clearable
value={challengeInfo.enableAt == null ? null : new Date(challengeInfo.enableAt)}
onChange={(e) => setChallengeInfo({ ...challengeInfo, enableAt: e?.toISOString() ?? null })}
value={challengeInfo.enableAt == null || new Date(challengeInfo.enableAt).valueOf() === 0
? null : new Date(challengeInfo.enableAt)}
onChange={(e) => setChallengeInfo({
...challengeInfo,
enableAt: (e ?? new Date(0)).toISOString(),
})}
/>
<DateTimePicker
label="自动截止计分时间"
clearable
value={challengeInfo.endAt == null ? null : new Date(challengeInfo.endAt)}
onChange={(e) => setChallengeInfo({ ...challengeInfo, endAt: e?.toISOString() ?? null })}
value={challengeInfo.endAt == null || new Date(challengeInfo.endAt).valueOf() === 0
? null : new Date(challengeInfo.endAt)}
onChange={(e) => setChallengeInfo({
...challengeInfo,
endAt: (e ?? new Date(0)).toISOString(),
})}
/>
<HintList
label={
Expand Down
16 changes: 12 additions & 4 deletions src/GZCTF/Models/Data/GameChallenge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,18 @@ internal void Update(ChallengeUpdateModel model)
MinScoreRate = model.MinScoreRate ?? MinScoreRate;
Difficulty = model.Difficulty ?? Difficulty;
FileName = model.FileName ?? FileName;

// 传入 null 则为 null
EnableAt = model.EnableAt;
EndAt = model.EndAt;

// 未作修改、已被清空、已被设置
EnableAt = model.EnableAt switch {
null => EnableAt,
var date when date == DateTimeOffset.UnixEpoch => null,
_ => model.EnableAt,
};
EndAt = model.EndAt switch {
null => EndAt,
var date when date == DateTimeOffset.UnixEpoch => null,
_ => model.EndAt,
};

// only set FlagTemplate to null when it pass an empty string (but not null)
FlagTemplate = model.FlagTemplate is null ? FlagTemplate :
Expand Down

0 comments on commit 0d45af7

Please sign in to comment.