Example #1
0
 public ActionResult <Result <object> > AnswerTheQuestion([FromBody] RequestAnswerTheQuestionModel model)
 {
     try
     {
         model.UserID = Current.User.ID;
         return(this.quizService.AnswerTheQuestion(model));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #2
0
        /// <summary>
        /// Answer the Question
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Result <object> AnswerTheQuestion(RequestAnswerTheQuestionModel model)
        {
            Result <object> result;

            try
            {
                var findQuestionAndAnswer = this._context.QuestionAnswer
                                            .Where(c => c.QuestionID == model.QuestionID && c.AnswerID == model.AnswerID)
                                            .FirstOrDefault();

                if (findQuestionAndAnswer == null)
                {
                    result = new Result <object>(false, "Question or Answer not found");
                }
                else
                {
                    bool isUserAnswer = this._context.UserAnswer
                                        .Any(c => c.QuestionID == model.QuestionID && c.UserID == model.UserID);
                    if (isUserAnswer)
                    {
                        result = new Result <object>(false, "You already answered");
                    }
                    else if (this._context.Answer.Any(c => c.ID == model.AnswerID && !c.IsTrue))
                    {
                        result = new Result <object>(false, "Wrong answer");
                    }
                    else
                    {
                        this._context.UserAnswer.Add(new UserAnswer()
                        {
                            QuestionID = model.QuestionID,
                            AnswerID   = model.AnswerID,
                            UserID     = model.UserID
                        });
                        this._context.SaveChanges();
                        result = new Result <object>(true, "Answer saved");
                    }
                }
            }
            catch (Exception ex)
            {
                result = new Result <object>(false, ex.Message);
            }

            return(result);
        }