public IHttpActionResult PostSubmitQuiz(List <SubmitQuizModel> submitQuizModels) { if (ModelState.IsValid) { var submitedTime = userRepository.CheckUserIsSubmited(submitQuizModels[0].UserId); if (submitedTime) { return(Ok(new ReturnResults(301, "The user was submited before", null))); } var exsited = answersRepository.GetAnswersByUserId(submitQuizModels[0].UserId); if (exsited != null) { answersRepository.DeleteAnswersByUserId(submitQuizModels[0].UserId); } int countCorrect = 0; var listAnswers = new List <Answer>(); foreach (var item in submitQuizModels) { var answers = new Answer(); answers.UserId = item.UserId.Trim(); answers.QuestionId = item.QuestionId; answers.ChoosenId = item.ChoosenId == 0 ? (int?)null : item.ChoosenId; if (item.IsCorrect) { countCorrect++; } answers.CreatedAt = DateTime.Now; listAnswers.Add(answers); } bool flag = answersRepository.InsertedAnswers(listAnswers); if (!flag) { return(Ok(new ReturnResults(400, "Failed", null))); } DateTime loginAt = userRepository.GetTimeLoginAt(listAnswers[0].UserId); TimeSpan timeUsed = DateTime.Now.Subtract(loginAt); userRepository.UpdateSubmitTimeQuizAndScoreAndTimeUsed(DateTime.Now, listAnswers[0].UserId, countCorrect, timeUsed); return(Ok(new ReturnResults(200, "Success", new SubmitedInfo(timeUsed, countCorrect)))); } return(Ok(new ReturnResults(400, "Failed", null))); }