Exemple #1
0
        public QuizResultsModel GetQuizResults(string submissionId)
        {
            var expression = QuizResultsModel.BuildModel();
            var data       = _context.QuizSubmissions.AsExpandable().Where(x => x.Id == submissionId).Select(x => expression.Invoke(x)).FirstOrDefault();

            return(data);
        }
Exemple #2
0
        public QuizStatisticsModel GetQuizStatistics(string quizId)
        {
            var model      = new QuizStatisticsModel();
            var quizExp    = QuizModel.BuildModel();
            var expression = QuizResultsModel.BuildModel();

            model.Quiz = _context.Quizzes.AsExpandable().Where(z => z.Id == quizId).Select(x => quizExp.Invoke(x)).FirstOrDefault();

            model.QuizResults = _context.QuizSubmissions
                                .AsExpandable()
                                .Where(x => x.QuizId == quizId && x.QuizzardUserId != null)
                                .Select(x => expression.Invoke(x)).ToList();

            return(model);
        }
Exemple #3
0
        internal QuizResultsModel GetQuizResults(int id, string userId)
        {
            var auService = new AnonymousUserService();

            using (var context = ApplicationDbContext.Create())
            {
                var quiz = context
                           .Quizes
                           .Include(x => x.Items)
                           .Include("Items.Law")
                           .Include("Items.LawSection.Law")
                           .Where(x => x.QuizId == id)
                           .FirstOrDefault();

                if (quiz == null)
                {
                    return(null);
                }

                var result = new QuizResultsModel
                {
                    QuizId            = quiz.QuizId,
                    TimeCreated       = quiz.TimeCreated,
                    Description       = quiz.Description,
                    Title             = quiz.Title,
                    ImageRelativePath = quiz.ImageRelativePath,
                    Items             = new List <QuizItemResultsModel>()
                };


                foreach (var questionItem in quiz.Items)
                {
                    QuizItemResultsModel item = null;
                    if (questionItem.Type == QuizItemType.Law)
                    {
                        item = PopulateResultsForLawAnswer(userId, auService, context, questionItem);
                    }
                    else if (questionItem.Type == QuizItemType.LawSection)
                    {
                        item = PopulateResultsForLawSectionAnswer(userId, auService, context, questionItem);
                    }
                    result.Items.Add(item);
                }

                return(result);
            }
        }