public async Task <IEnumerable <LearningQuiz> > GetAllLearningQuizzes(bool?isFinished, string userId) { var learningQuizzesQuery = _learningQuizzesRepository .GetAllByUserId(userId); if (isFinished != null) { learningQuizzesQuery = learningQuizzesQuery .Where(l => l.IsFinished == isFinished.Value); } var learningQuizzes = await learningQuizzesQuery .Include(q => q.Quiz) .ToListAsync(); for (var i = learningQuizzes.Count - 1; i >= 0; i--) { if (learningQuizzes[i].QuizId == null) { continue; } var access = await _quizAccessesRepository.GetQuizAccessForUserAsync(userId, learningQuizzes[i].QuizId.Value); if (access == null || access.Access == QuizAccessEnum.None) { learningQuizzes.RemoveAt(i); } else { learningQuizzes[i].Quiz.IncludeAccess(access.Access); } } return(await _auth0UsersService.IncludeOwnerNickNamesInLearningQuiz(learningQuizzes)); }
public async Task <bool> DeleteUserDataAsync(string userId) { var settings = await _userSettingsRepository.GetById(userId); if (settings != null) { _userSettingsRepository.Delete(settings); } var accesses = _quizAccessesRepository.GetAllByUserId(userId); _quizAccessesRepository.DeleteRange(accesses); var solvedQuizzes = _solvedQuizRepository.GetAllByUserId(userId); _solvedQuizRepository.DeleteRange(solvedQuizzes); var learningQuizzes = _learningQuizzesRepository.GetAllByUserId(userId); _learningQuizzesRepository.DeleteRange(learningQuizzes); var quizzes = _quizzesRepository.GetAllByUserId(userId); _quizzesRepository.DeleteRange(quizzes); return(await Context.SaveChangesAsync() > 0); }