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); }
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); }
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); } }