public async Task <ResultAnswerDetailDto> GetResultAnswerById(int resultAnswerId) { ResultAnswer resultAnswer = await resultAnswerRepository.GetByIdAsync(id : resultAnswerId, includeProperties : prop => prop .Include(ra => ra.ResultAnswerOptions)); return(mapper.Map <ResultAnswerDetailDto>(resultAnswer)); }
public ActionResult PassResult(PassTestModel model) { if (!ModelState.IsValid) { return(Json(new { isValid = false })); } var test = testsRepo.FindOne(new ByIdSpecify <Test>(model.Id)); var result = new TestResult { UserId = this.usersRepo.FindOne(new UserByLoginSpecify(User.Identity.Name)).Id, TestId = test.Id, PassDate = DateTime.Now }; testsResRepo.SaveOrUpdate(result); var correctAnswers = 0; foreach (var question in model.Questions) { var resultQuestion = new ResultQuestion { QuestionText = question.QuestionValue, TestResultId = result.Id }; qResRepo.SaveOrUpdate(resultQuestion); foreach (var answer in question.Answers) { if (answer.IsCorrect && answer.IsChoisen) { correctAnswers++; } var resultAnswer = new ResultAnswer { AnswerText = answer.AnswerValue, ResultQuestionId = resultQuestion.Id, IsCorrect = answer.IsCorrect, IsChoisen = answer.IsChoisen }; aResRepo.SaveOrUpdate(resultAnswer); //resultQuestion.ResultAnswers.Add(resultAnswer); } //result.ResultQuestions.Add(resultQuestion); } ViewBag.correctAnswers = correctAnswers; ViewBag.totalQuestios = model.Questions.Count; return(View()); }
public async Task <CreatedResultAnswerDto> CreateResultAnswer(NewResultAnswerDto newResultAnswerDto) { ResultAnswer resultAnswer = mapper.Map <ResultAnswer>(newResultAnswerDto); resultAnswerRepository.Insert(resultAnswer); await unitOfWork.SaveAsync(); return(mapper.Map <CreatedResultAnswerDto>(resultAnswer)); }
public async Task <DeletedResultAnswerDto> DeleteResultAnswer(int resultAnswerId) { ResultAnswer resultAnswer = await resultAnswerRepository.GetByIdAsync(resultAnswerId); if (resultAnswer == null) { return(null); } resultAnswerRepository.Delete(resultAnswer); await unitOfWork.SaveAsync(); return(mapper.Map <DeletedResultAnswerDto>(resultAnswer)); }
private ResultAnswer CreateResultAnswerWithOptions(PayloadQuestion receivedQuestion, int receivedQuestionIndex, List <TestEvent> eventsQuestionAnswered, TestEvent eventTestStarted) { var resultAnswer = new ResultAnswer(); if (receivedQuestionIndex >= 0) { resultAnswer.TimeTakenSeconds = receivedQuestionIndex == 0 ? eventsQuestionAnswered[receivedQuestionIndex].StartTime - eventTestStarted.StartTime : eventsQuestionAnswered[receivedQuestionIndex].StartTime - eventsQuestionAnswered[receivedQuestionIndex - 1].StartTime; resultAnswer.ResultAnswerOptions = receivedQuestion.SelectedOptionsId.Select(selectedOptionId => new ResultAnswerOption { OptionId = selectedOptionId }).ToList(); } else { resultAnswer.TimeTakenSeconds = TimeSpan.Zero; } return(resultAnswer); }
public ActionResult PassResult(PassTestModel model) { if (!ModelState.IsValid) { return Json(new { isValid = false }); } var test = testsRepo.FindOne(new ByIdSpecify<Test>(model.Id)); var result = new TestResult { UserId = this.usersRepo.FindOne(new UserByLoginSpecify(User.Identity.Name)).Id, TestId = test.Id, PassDate = DateTime.Now }; testsResRepo.SaveOrUpdate(result); var correctAnswers = 0; foreach (var question in model.Questions) { var resultQuestion = new ResultQuestion { QuestionText = question.QuestionValue, TestResultId = result.Id }; qResRepo.SaveOrUpdate(resultQuestion); foreach (var answer in question.Answers) { if (answer.IsCorrect && answer.IsChoisen) correctAnswers++; var resultAnswer = new ResultAnswer { AnswerText = answer.AnswerValue, ResultQuestionId = resultQuestion.Id, IsCorrect = answer.IsCorrect, IsChoisen = answer.IsChoisen }; aResRepo.SaveOrUpdate(resultAnswer); //resultQuestion.ResultAnswers.Add(resultAnswer); } //result.ResultQuestions.Add(resultQuestion); } ViewBag.correctAnswers = correctAnswers; ViewBag.totalQuestios = model.Questions.Count; return View(); }