コード例 #1
0
        public void OnGet(int quizId, int?quizResponseId)
        {
            quiz = _context.Quizzes.Include(q => q.Questions).ThenInclude(q => q.Answers).FirstOrDefault(q => q.ID == quizId);

            if (quizResponseId != null)
            {
                response = _context.QuizResponses.Include(qr => qr.Answers).FirstOrDefault(r => r.ID == quizResponseId);
            }
        }
コード例 #2
0
        public async Task <IActionResult> PostQuizResponse([FromBody] Models.QuizResponse quizResponse)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userIdClaim = HttpContext.User.Claims.FirstOrDefault();
            var userId      = quizResponse.UserSub;

            if (userIdClaim == null)
            {
                userId = quizResponse.UserSub;
            }
            else
            {
                userId = userIdClaim.ToString();
            }

            context.QuizResponses.Add(quizResponse);
            Archetype archetype = context.Archetypes
                                  .Where(a =>
                                         (a.CombatRating == quizResponse.RatioCombat) &&
                                         (a.MagicRating == quizResponse.RatioMagic) &&
                                         (a.StealthRating == quizResponse.RatioStealth)
                                         ).FirstOrDefault();

            if (archetype == null)
            {
                archetype = context.Archetypes.First();
            }

            CharacterSheet character = new CharacterSheet {
                Strength     = archetype.BaseStrength,
                Dexterity    = archetype.BaseDexterity,
                Intelligence = archetype.BaseIntelligence,
                Health       = archetype.BaseHealth,
                Archetype    = archetype,
                UserSub      = userId
            };

            context.Add(character);
            await context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { id = character.ID }, character));
        }