示例#1
0
        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);
        }
示例#2
0
        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();
        }
示例#3
0
        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));
        }
示例#4
0
        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());
        }
示例#5
0
        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 }));
 }