public void CreatePoint(List <Question> questions, ResultParamViewModel resultModel) { double point = 0; List <string> userAnswers = resultModel.UserAnswer; for (int i = 0; i < questions.Count; i++) { if (userAnswers[i] == null) { continue; } if (userAnswers[i].ToLower() == questions[i].Answer.FirstOrDefault(p => p.IsCorrect).Name.ToLower()) { point++; } } point = Math.Round((point * 100) / questions.Count, 1); resultModel.Result.Point = point; if (resultModel.Result.Point >= resultModel.Test.Rate) { resultModel.Result.IsSuccess = true; } }
public IActionResult CreateResult(ResultParamViewModel resultModel) { List <Question> questions = questionService.Questions.Where(p => p.TestId == resultModel.Result.TestId).Include(p => p.Answer).ToList(); if (questions.Any()) { handler.CreatePoint(questions, resultModel); resultService.AddResult(resultModel.Result); resultModel.Test.Question = questions; return(View("ShowResult", resultModel)); } else { return(NotFound()); } }