コード例 #1
0
ファイル: ChallengeLogic.cs プロジェクト: Djohnnie/HTF2018
        public async Task <Answer> GetAnswerByChallengeId(Guid challengeId)
        {
            Challenge challenge = await _dbContext.Challenges.SingleOrDefaultAsync(x => x.Id == challengeId);

            if (challenge != null)
            {
                return(JsonConvert.DeserializeObject <Answer>(challenge.Answer));
            }
            return(null);
        }
コード例 #2
0
ファイル: DashboardLogic.cs プロジェクト: Djohnnie/HTF2018
        private async Task <Status> GetChallengeStatus(Guid teamId, Identifier identifier)
        {
            Challenge challenge = await _dbContext.Challenges
                                  .Where(x => x.Team.Id == teamId)
                                  .Where(x => x.Status == Status.Successful)
                                  .OrderByDescending(x => x.SolvedOn)
                                  .FirstOrDefaultAsync(x => x.Identifier == identifier);

            return(challenge != null && (identifier == Identifier.Challenge01 || challenge.SolvedOn >= DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(15))) ? Status.Successful : Status.Unsuccessful);
        }
コード例 #3
0
ファイル: ChallengeLogic.cs プロジェクト: Djohnnie/HTF2018
        public async Task <Challenge> CreateChallenge(Guid challengeId, Question question, Answer answer, Identifier identifier)
        {
            Challenge challenge = new Challenge
            {
                Id         = challengeId,
                Identifier = identifier,
                Team       = null,
                Question   = JsonConvert.SerializeObject(question),
                Answer     = JsonConvert.SerializeObject(answer)
            };
            await _dbContext.Challenges.AddAsync(challenge);

            await _dbContext.SaveChangesAsync();

            return(challenge);
        }