Пример #1
0
 public async Task <QuizModel> GetQuiz(string id)
 {
     return(await _context.Quizzes
            .AsExpandable()
            .Where(x => x.Id == id).Select(QuizModel.BuildModel(false))
            .FirstOrDefaultAsync());
 }
Пример #2
0
 public async Task <IEnumerable <QuizModel> > GetUserOwnedQuizzes(string userId)
 {
     return(await _context.Quizzes
            .AsExpandable()
            .Where(x => x.QuizzardUserId == userId)
            .Select(QuizModel.BuildModel(false))
            .ToListAsync());
 }
Пример #3
0
        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());
        }
Пример #4
0
 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());
 }
Пример #5
0
        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());
        }
Пример #6
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);
        }