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); } } }
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 = "ซ้ำซ้อน" }); } }