Exemplo n.º 1
0
        public void EndTest([FromBody] ActionSheetRequest actionSheetRequest)
        {
            var sheet = repoOnSite.GetSheetBySheetId(actionSheetRequest.sheetId);

            if (sheet != null)
            {
                //foreach (var item in sheet.RandomQuestions)
                //{
                //    if (item.UserAnswer != null)
                //    {
                //        item.UserAnswer.IsCorrect = item.Choices.Where(x => x._id == item.UserAnswer._id).FirstOrDefault().IsCorrect;
                //    }
                //}

                //sheet.CorrectScore = sheet.RandomQuestions.Where(x => x.UserAnswer.IsCorrect.Value).Count();
                //sheet.InCorrectScore = sheet.RandomQuestions.Where(x => !x.UserAnswer.IsCorrect.Value).Count();

                //if (sheet.CorrectScore >= sheet.Subject.PassScore)
                //{
                //    sheet.LatestStatus = "PASS";
                //}
                //else
                //{
                //    sheet.LatestStatus = "FAIL";
                //}

                var newStatus = new StatusExtension
                {
                    _id            = Guid.NewGuid().ToString(),
                    ClientId       = "admin",
                    CreateDateTime = DateTime.Now,
                    //Status = sheet.LatestStatus
                    Status = sheet.CorrectScore >= sheet.Subject.PassScore ? "PASS" : "FAIL",
                };
                sheet.StatusExtensions.Add(newStatus);
                sheet.LatestStatus = newStatus.Status;
                sheet.ExamDateTime = DateTime.Now;

                repoOnSite.UpdateSheet(sheet);

                if (sheet.LatestStatus == "PASS")
                {
                    SyncExam(sheet._id);
                }
            }
        }
Exemplo n.º 2
0
        public MessageRespone Answer([FromBody] AnswerRequest answerRequest)
        {
            var sheet = repoOnSite.GetSheetBySheetId(answerRequest.ExamSheetId);

            //Normal
            if (sheet != null && sheet.LatestStatus != "RESUME" && answerRequest.ClientId == sheet.ClientId)
            {
                var question = sheet.RandomQuestions.Where(q => q._id == answerRequest.QID).FirstOrDefault();

                question.UserAnswer = question.Choices.Where(c => c._id == answerRequest.ChoiceId).FirstOrDefault();

                repoOnSite.UpdateSheet(sheet);

                return(new MessageRespone {
                    Code = "SUCCESS", Message = "ตอบสำเร็จ"
                });
            }
            //Resume
            else if (sheet != null && sheet.LatestStatus == "RESUME")
            {
                var question = sheet.RandomQuestions.Where(q => q._id == answerRequest.QID).FirstOrDefault();

                question.UserAnswer = question.Choices.Where(c => c._id == answerRequest.ChoiceId).FirstOrDefault();

                //override client id
                sheet.ClientId = answerRequest.ClientId;

                repoOnSite.UpdateSheet(sheet);

                return(new MessageRespone {
                    Code = "SUCCESS", Message = "ตอบสำเร็จ"
                });
            }
            else
            {
                return(new MessageRespone {
                    Code = "DUPLICATE", Message = "ซ้ำซ้อน"
                });
            }
        }