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); }
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); }
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); }