public async Task <MResultRequest <string> > AddAsync(MReaderChoice_MainInfo ReaderChoice_MainInfo) { try { MReaderChoice_MainInfoDb ResultOfTheTestDb = _mapper.Map <MReaderChoice_MainInfoDb>(ReaderChoice_MainInfo); _context.Set <MReaderChoice_MainInfoDb>().Add(ResultOfTheTestDb); await _context .SaveChangesAsync(); return (MResultRequest <string> .Ok("Complite !!!")); } catch (DbUpdateConcurrencyException e) { return ((MResultRequest <string>) MResultRequest <string> .Fail <string>($"Cannot save model. {e.Message}")); } catch (DbUpdateException e) { return ((MResultRequest <string>) MResultRequest <string> .Fail <string>($"Cannot save model. Duplicate field. {e.Message}")); } catch (DbEntityValidationException e) { return ((MResultRequest <string>) MResultRequest <string> .Fail <string>($"Invalid model. {e.Message}")); } }
public int CheckQuestion(MTest_MainInfo Current_Test_MainInfo, MReaderChoice_MainInfo ReaderChoice_MainInfo) { int CorrectAnswerCount = 0; if (Current_Test_MainInfo.Questions_ChoosingAnswerFromList.Any()) { foreach (MQuestion_ChoosingAnswerFromList CurrentQuestions_ChoosingAnswerFromList in Current_Test_MainInfo.Questions_ChoosingAnswerFromList) { IEnumerable <int> CorrectAnswerId = CurrentQuestions_ChoosingAnswerFromList.AnswerVariants .Where(c => c.IsCorrectAnswer) .Select(c => c.Id) .OrderBy(c => c); IEnumerable <int> ReaderAnswerId = ReaderChoice_MainInfo.ReaderChoices_ChoosingAnswerFromList .Where(c => c.Question_ChoosingAnswerFromList_Id == CurrentQuestions_ChoosingAnswerFromList.Id) .Select(c => c.AnswerVariant_ChoosingAnswerFromList_Id) .OrderBy(c => c); if (CorrectAnswerId.SequenceEqual(ReaderAnswerId)) { CorrectAnswerCount++; } } } return (CorrectAnswerCount); }
public int CheckQuestion(MTest_MainInfo Current_Test_MainInfo, MReaderChoice_MainInfo ReaderChoice_MainInfo) { int CorrectAnswerCount = 0; if (ReaderChoice_MainInfo.ReaderChoices_SetOrder != null) { foreach (MQuestion_SetOrder CurrentQuestions_SetOrder in Current_Test_MainInfo.Questions_SetOrder) { IEnumerable <int> CorrectAnswerId = CurrentQuestions_SetOrder.AnswerVariants .Select(c => c.CorrectOrderKey); IEnumerable <int> ReaderAnswerId = ReaderChoice_MainInfo.ReaderChoices_SetOrder .Where(c => c.Question_SetOrderDb_Id == CurrentQuestions_SetOrder.Id) .Select(c => c.AnswerVariant_SetOrderDb_Id); if (CorrectAnswerId.SequenceEqual(ReaderAnswerId)) { CorrectAnswerCount++; } } } return (CorrectAnswerCount); }
public IHttpActionResult CheckTest([FromBody] MReaderChoice_MainInfo ReaderChoice_MainInf) { var x = _service_Test.CheckTestAsync("5012f850-9c59-4fd9-9e50-4d93ecac03fb", ReaderChoice_MainInf).Data; return (Ok(_service_Test.CheckTestAsync("5012f850-9c59-4fd9-9e50-4d93ecac03fb", ReaderChoice_MainInf).Data)); }
// ------------ CheckCorrectAnswer public MResultRequest <string> CheckTestAsync(string User_TestReaderr_Id, MReaderChoice_MainInfo ReaderChoice_MainInfo) { try { MTest_MainInfo Current_Test_MainInfo = GetById(ReaderChoice_MainInfo.Test_MainInfoDb_Id).Data; int NumberOfCorrectAnswer = 0; NumberOfCorrectAnswer += _service_Question_ChoosingAnswerFromList.CheckQuestion(Current_Test_MainInfo, ReaderChoice_MainInfo); NumberOfCorrectAnswer += _service_Question_SetOrder.CheckQuestion(Current_Test_MainInfo, ReaderChoice_MainInfo); int NumberOfAttempt = 1; if (_context.Set <MReaderChoice_MainInfoDb>().Any(c => c.Test_MainInfoDb_Id == ReaderChoice_MainInfo.Test_MainInfoDb_Id && c.User_TestReaderDb_Id == User_TestReaderr_Id)) { NumberOfAttempt = _context.Set <MReaderChoice_MainInfoDb>() .Where(c => c.Test_MainInfoDb_Id == ReaderChoice_MainInfo.Test_MainInfoDb_Id && c.User_TestReaderDb_Id == User_TestReaderr_Id) .Select(c => c.NumberOfAttempt) .Max() + 1; } ReaderChoice_MainInfo.User_TestReaderDb_Id = User_TestReaderr_Id; ReaderChoice_MainInfo.NumberOfAttempt = NumberOfAttempt; ReaderChoice_MainInfo.ResultTest = $@"{NumberOfCorrectAnswer} из {((Current_Test_MainInfo.Questions_ChoosingAnswerFromList.Any()) ? Current_Test_MainInfo.Questions_ChoosingAnswerFromList.Count : 0)}"; return (MResultRequest <string> .Ok(ReaderChoice_MainInfo.ResultTest)); } catch (Exception e) { return ((MResultRequest <string>) MResultRequest <string> .Fail <string>(e.Message)); } }
public IHttpActionResult ResultTestStructure(int TestId) { MTest_MainInfo Test_MainInfo = _service_Test.GetById(TestId).Data; MReaderChoice_MainInfo ReaderChoice_MainInfo = new MReaderChoice_MainInfo() { Test_MainInfoDb_Id = Test_MainInfo.Id, ReaderChoices_ChoosingAnswerFromList = new List <MReaderChoice_ChoosingAnswerFromList>() }; foreach (var x in Test_MainInfo.Questions_ChoosingAnswerFromList) { ReaderChoice_MainInfo.ReaderChoices_ChoosingAnswerFromList.Add( new MReaderChoice_ChoosingAnswerFromList() { Question_ChoosingAnswerFromList_Id = x.Id }); } return (Json(ReaderChoice_MainInfo)); }