Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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));
            }
        }