Пример #1
0
        public Result <object> Questions(RequestQuizModel model)
        {
            //kullanıcının cevap verdiği soru id'lerini bul
            long[] findQuestionIDS = this._context.UserAnswer
                                     .Where(c => c.UserID == model.UserID)
                                     .Select(c => c.QuestionID)
                                     .ToArray();

            bool isFinish = false;

            int questionTotalCount  = this._Count(c => !c.IsDeleted),
                questionTotalAnswer = 0;

            //kullanıcı kaç soruya cevap vermiş bul
            questionTotalAnswer = (from qa in this._context.QuestionAnswer where findQuestionIDS.Contains(qa.QuestionID) orderby qa.QuestionID select qa.QuestionID)
                                  .Distinct()
                                  .Count();

            //toplam soru sayısı ve kullanıcının verdiği soru sayıları eşitse tümüne cevap verilmiş demektir
            if (questionTotalCount > 0)
            {
                isFinish = questionTotalAnswer == questionTotalCount;
            }

            var questions = new
            {
                List = this._context.Question
                       .Where(c => !c.IsDeleted && !findQuestionIDS.Contains(c.ID) && (model.ID == null || c.ID > model.ID))
                       .Select(x => new
                {
                    ID       = x.ID,
                    Question = x.Text,
                    Answers  = x.QuestionAnswers.Where(qa => !qa.Answer.IsDeleted).Select(qa => new
                    {
                        ID   = qa.AnswerID,
                        Text = qa.Answer.Text
                    }).ToList(),
                })
                       .Take(1)
                       .ToList(),
                QuestionTotalCount    = questionTotalCount,
                QuestionTotalAnswered = findQuestionIDS.Length,
                IsFinish = isFinish
            };

            return(new Result <object>(true, questions));
        }
Пример #2
0
        public ActionResult <Result <object> > Get([FromBody] RequestQuizModel model)
        {
            try
            {
                if (model == null)
                {
                    model = new RequestQuizModel();
                }

                model.UserID = Current.User.ID;
                return(this.quizService.Questions(model));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }