コード例 #1
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        // ------------ 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));
            }
        }
コード例 #6
0
        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));
        }