예제 #1
0
        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);
        }
예제 #2
0
        public async Task <History> Pop()
        {
            var history = await _dbContext.History.OrderBy(x => x.SysId).FirstOrDefaultAsync();

            Status?status = history?.Status;

            if (history != null)
            {
                _dbContext.History.Remove(history);
            }
            await _dbContext.SaveChangesAsync();

            return(new History {
                Status = status
            });
        }
예제 #3
0
        public async Task <Team> CreateTeam(string name, string secret)
        {
            Guid id   = Guid.NewGuid();
            Team team = new Team
            {
                Id             = id,
                Name           = name,
                HashedSecret   = secret.Md5Hash(),
                Identification = $"{id}".Base64Encode()
            };
            await _dbContext.Teams.AddAsync(team);

            await _dbContext.SaveChangesAsync();

            return(team);
        }
예제 #4
0
        public async Task <Image> StoreImage(Byte[] binaryImage)
        {
            var checksum      = CalculateChecksum(binaryImage);
            var existingImage = await _dbContext.Images.SingleOrDefaultAsync(x => x.Checksum == checksum);

            if (existingImage != null)
            {
                return(existingImage);
            }

            var image = new Image
            {
                Id       = Guid.NewGuid(),
                Data     = binaryImage,
                Checksum = checksum
            };
            await _dbContext.Images.AddAsync(image);

            await _dbContext.SaveChangesAsync();

            return(image);
        }