public void SaveReflectionToolResponse(List <ReflectionToolQuizAttempt> attempt) { var latestDetails = _reflectionToolAdapter.GetLatestAttemptId(); var latestId = latestDetails?.id ?? 0; var attemptCount = _reflectionToolAdapter.GetLatestAttemptByUser(attempt[0].userid); foreach (var item in attempt) { latestId++; item.id = latestId; item.attemptcount = (attemptCount?.attemptcount ?? 0) + 1; item.attempttimestamp = DateTime.Now.ToString(CultureInfo.InvariantCulture); } _reflectionToolAdapter.SaveReflectionToolQuizAttempt(attempt); }
public List <QuizAttempts> GetReflectionToolQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var reflectionToolQuizzes = _reflectionToolAdapter.GetReflectionToolQuestions(); var latestAttempt = _reflectionToolAdapter.GetLatestAttemptByUser(userId); List <ReflectionToolQuizAttempt> result = new List <ReflectionToolQuizAttempt>(); if (latestAttempt != null) { if (attempt == 1) { result = _reflectionToolAdapter.GetReflectionToolAttempts(userId, latestAttempt.attemptcount); } else { if (latestAttempt.attemptcount > 1) { _reflectionToolAdapter.GetReflectionToolAttempts(userId, latestAttempt.attemptcount - 1); } } } List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); if (result != null) { foreach (var quizAttempt in result) { QuizAttempts attempts = new QuizAttempts { question = reflectionToolQuizzes.FirstOrDefault(q => q.id == quizAttempt.questionid)?.question, answer = quizAttempt.answer, userId = quizAttempt.userid, selectedoptions = string.Join(",", quizAttempt.selectedoptions), attempt = quizAttempt.attemptcount, type = quizDetails.type }; quizAttempts.Add(attempts); } } return(quizAttempts); }