Exemple #1
0
        public async Task <UserAnswer> UserAnswer(InUserAnswer inUserAnswer, int userId)
        {
            var gameQuestion = await context.GameQuestions
                               .FirstOrDefaultAsync(x => x.QuestionId == inUserAnswer.QuestionId && x.GameId == inUserAnswer.GameId);

            if (gameQuestion.IsCurrent == true)
            {
                var newUa = new UserAnswer
                {
                    AnswerId   = inUserAnswer.AnswerId,
                    GameId     = inUserAnswer.GameId,
                    QuestionId = inUserAnswer.QuestionId,
                    UserId     = userId,
                };
                await context.UserAnswers.AddAsync(newUa);

                await context.SaveChangesAsync();

                return(await context.UserAnswers.Include(x => x.Answer).Include(x => x.User).FirstOrDefaultAsync(x => x.Id == newUa.Id));
            }
            throw ExceptionFactory.SoftException(ExceptionEnum.QuestionNotCurrent, "QuestionNotCurrent");
        }
        public async Task <OutUserAnswer> UserAnswer([FromBody] InUserAnswer inUserAnswer)
        {
            var answer = await gameService.UserAnswer(inUserAnswer, UserId);

            return(mapperProfile.Map <OutUserAnswer>(answer));
        }