public async Task <QuizModel> GetQuiz(string id) { return(await _context.Quizzes .AsExpandable() .Where(x => x.Id == id).Select(QuizModel.BuildModel(false)) .FirstOrDefaultAsync()); }
public async Task <IEnumerable <QuizModel> > GetUserOwnedQuizzes(string userId) { return(await _context.Quizzes .AsExpandable() .Where(x => x.QuizzardUserId == userId) .Select(QuizModel.BuildModel(false)) .ToListAsync()); }
public async Task <List <QuizModel> > GetMyQuizzes(string userId) { var exp = QuizModel.BuildModel(false); return(await _context.Quizzes.AsExpandable() .Where(x => x.QuizzardUserId == userId) .Select(x => exp.Invoke(x)) .ToListAsync()); }
public async Task <IEnumerable <QuizModel> > SearchForQuizzes(bool privateQuizzes = false, params string[] query) { return(await _context.Quizzes .AsExpandable() .Where(x => (query.Any(q => x.Title.Contains(q)) || query.Any(q => x.Description.Contains(q))) && x.ArchivedOn == null && x.Private == false || x.Private == privateQuizzes && x.DraftMode == false) .Select(QuizModel.BuildModel(false)) .ToListAsync()); }
public async Task <IEnumerable <QuizModel> > GetAllQuizzes(bool includePrivateQuizzes = false) { var expr = QuizModel.BuildModel(false); return(await _context.Quizzes.AsExpandable() .Where(x => (x.Private == false || x.Private == includePrivateQuizzes) && x.ArchivedOn == null && x.DraftMode == false) .Select(x => expr.Invoke(x)) .ToListAsync()); }
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); }