private QuestionVideoModel UpdateQuestionVideoModel(QuestionVideoModel questionVideoModel) { questionVideoModel.Exam.ExamId = Guid.NewGuid(); foreach (var question in questionVideoModel.Questions) { var answer = question.AnswerChoosed ?? ""; question.IsCorrect = question.Answer.ToLower() == answer.ToLower(); question.ExamQuestionDetails .Add(new Test_ExamQuestionDetail() { QuestionId = question.QuestionId, ExamId = questionVideoModel.Exam.ExamId, Answer = answer, Result = question.Answer, IsCorrect = question.IsCorrect, CreateByUser = "******", CreateDate = DateTime.Now }); if (!string.IsNullOrEmpty(answer)) { var answerChoosed = question.QuestionDetails.SingleOrDefault(n => n.AnswerPossobolity.Equals(answer)); var isCorrect = answerChoosed != null ? answerChoosed.IsCorrect = question.IsCorrect : null; } } var totalCorrect = questionVideoModel.Questions.Count(n => n.IsCorrect == true); var totalInCorrect = questionVideoModel.Questions.Count(n => n.IsCorrect == false); var totalQuestion = questionVideoModel.Questions.Count(); questionVideoModel.Exam.QtyCorrect = totalCorrect; questionVideoModel.Exam.QtyIncorrect = totalInCorrect; questionVideoModel.Exam.TotalScore = totalQuestion; return(questionVideoModel); }
private async Task SaveData(QuestionVideoModel questionVideoModel) { var exam = await _examService.AddAsync(questionVideoModel.Exam); var examQuestionDetails = questionVideoModel.Questions.Select(n => n.ExamQuestionDetails); foreach (var examQuestionDetail in examQuestionDetails) { await _examQuestionDetailService.AddRangeAsync(examQuestionDetail); } await _examQuestionDetailService.SaveChangesAsync(); }
public async Task <IViewComponentResult> InvokeAsync() { QuestionVideoModel questionVideoModel = TempData.Get <QuestionVideoModel>("questionVideoModel"); if (questionVideoModel == null) { questionVideoModel = new QuestionVideoModel(); } UpdateQuestionVideoModel(questionVideoModel); await SaveData(questionVideoModel); return(View("AnswerTest", questionVideoModel)); }
public async Task <QuestionVideoModel> GetInfoExamTest(int videoLineId) { var examStructure = await _examStructureRepository.GetSingleByConditionAsync(n => n.VideoLineId == videoLineId); if (examStructure != null) { var questionIds = examStructure.QuestionLineId.Split(";").ToList(); var exam = new Test_Exam() { ExamId = Guid.NewGuid(), ExamName = "User 1 test", TotalScore = 0, QtyCorrect = 0, QtyIncorrect = 0 }; var result = await _questionRepository .ListAsync(null, null, z => z.Include(i => i.QuestionDetails) .Include(i => i.ExamQuestionDetails) //.Include(i => i.AppUser) ); var questions = (from question in result where questionIds.Contains(question.LineId.ToString()) select question ).OrderBy(n => n.Order).ToList(); QuestionVideoModel questionVideo = new QuestionVideoModel() { Exam = exam, //ExamStructure = examStructure, Questions = questions }; return(questionVideo); } return(new QuestionVideoModel()); }
public async Task <IViewComponentResult> InvokeAsync(int videoLineId) { _model = await _examService.GetInfoExamTest(videoLineId); return(View("QuestionsVideo", _model)); }
public async Task <IActionResult> VideoDetail(QuestionVideoModel questionVideo) { TempData.Put("questionVideoModel", questionVideo); TempData["IsPostVideoDetal"] = true; return(RedirectToAction("VideoDetail", new { id = questionVideo.ExamStructure.VideoLineId })); }