public async Task <IHttpActionResult> ValidateAnswer(int answerId, int userId) { try { using (var context = new gamequizlgpdEntities()) { if (userId == 0) { return(BadRequest("Usuario invalido")); } if (answerId == 0) { return(BadRequest("Alternativa invalida")); } var answerChosen = await context.Respostas.FirstOrDefaultAsync(p => p.Id == answerId); if (answerChosen == null) { return(BadRequest("Alternativa não encontrada")); } //salva a resposta no banco var answerUserModel = new RepostasUsuarios { QuestaoId = answerChosen.QuestaoId, RespostaId = answerId, UsuarioId = userId, }; context.Entry(answerUserModel).State = EntityState.Added; context.SaveChanges(); //valida se esta correta a resposta escolhida var model = new ValidateAnswerModel(); if (answerChosen.RespostaCorreta) { AddScoreUser(userId, answerChosen.QuestaoId); model.IsCorrectAnswer = true; model.LifeUser = await UserLife(userId); } else { DamageLifeUser(userId); model.IsCorrectAnswer = false; model.LifeUser = await UserLife(userId); } return(Ok(model)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void AddScoreUser(int userId, int questionId) { using (var context = new gamequizlgpdEntities()) { var user = context.Usuarios.FirstOrDefault(p => p.Id == userId); var questionPoints = context.Questoes.FirstOrDefault(p => p.Id == questionId).NiveisDificuldades.Pontos; user.Pontos = user.Pontos + questionPoints; context.Entry(user).State = EntityState.Modified; context.SaveChanges(); } }
public void DamageLifeUser(int userId) { using (var context = new gamequizlgpdEntities()) { var user = context.Usuarios.FirstOrDefault(p => p.Id == userId); if (user.Vida > 0) { user.Vida = user.Vida - 1; context.Entry(user).State = EntityState.Modified; context.SaveChanges(); } } }
public async Task <IHttpActionResult> RegisterUser(string name) { try { if (string.IsNullOrEmpty(name)) { return(BadRequest("Apelido inválido")); } if (name.Length != 3) { return(BadRequest("O apelido deve conter exatos 3 caracteres")); } bool specialCharacters = Regex.IsMatch(name, (@"[^a-zA-Z0-9]")); if (specialCharacters) { return(BadRequest("Não é permitido uso de caracteres especiais")); } using (var context = new gamequizlgpdEntities()) { var userModel = new Usuarios { Nome = name, Pontos = 0, Vida = 3, }; context.Entry(userModel).State = EntityState.Added; context.SaveChanges(); return(Ok(userModel.Id)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }