private Dictionary <int, int> CollectAnswers(TakenQuiz takenQuiz, out List <QuestionPlayViewModel> questionsFromHistory) { Dictionary <int, int> result = new Dictionary <int, int>(); questionsFromHistory = new List <QuestionPlayViewModel>(); var userAnswers = takenQuiz.UsersAnswers; foreach (var item in userAnswers) { var questionId = item.AnswerDefinition.QuestionDefinition.Id; result.Add(questionId, item.AnswerDefinitionId); var question = this.Db.QuestionsDefinitions .AllWithDeleted() .Where(q => q.Id == questionId) .Project() .To <QuestionPlayViewModel>() .FirstOrDefault(); questionsFromHistory.Add(question); } return(result); }
private int SaveResult(int quizId, Dictionary <int, int> selectedAnswers, int scorePercentage) { var user = this.User.Identity.GetUserId(); TakenQuiz takenQuiz = new TakenQuiz(); takenQuiz.UserId = user; takenQuiz.QuizDefinitionId = quizId; foreach (var item in selectedAnswers) { var answerId = item.Value; UsersAnswer givenAnswer = new UsersAnswer(); givenAnswer.AnswerDefinitionId = answerId; givenAnswer.TakenQuiz = takenQuiz; this.Db.UsersAnswers.Add(givenAnswer); } takenQuiz.Score = scorePercentage; this.Db.TakenQuizzes.Add(takenQuiz); this.Db.SaveChanges(); return(takenQuiz.Id); }