public async Task <UserQuiz> SaveUserQuiz(List <int> choices, int id, string userId) { var userChoices = new List <UserChoice>(); foreach (var choice in choices) { userChoices.Add(new UserChoice() { ChoiceId = choice }); } var correctChoicesFromQuiz = await _choiceRepo.GetCorrectChoiceByQuiz(id) as List <Choice>; var correctChoices = correctChoicesFromQuiz.Where(c => choices.Any(ch => ch == c.Id)); var totalScore = correctChoices.Sum(c => c.Question.ScoreValue); // Add new UserQuiz var userQuiz = new UserQuiz() { QuizId = id, UserId = userId, UserChoices = userChoices, Timestamp = DateTime.Now, EndScore = totalScore }; // savechanges _quizRepo.AddUserQuiz(userQuiz); await _quizRepo.SaveAsync(); return(userQuiz); }