Ejemplo n.º 1
0
        public async Task <IHttpActionResult> Create(TestModel test)
        {
            if (test == null)
            {
                return(BadRequest("Test must not be null."));
            }

            try
            {
                TestDTO testDTO = _mapper.Map <TestModel, TestDTO>(test);

                TestDTO createdTest = await _testService.Create(testDTO);

                TestModel returnedTest = _mapper.Map <TestDTO, TestModel>(createdTest);

                string createdAtUrl = "http://www.google.com";

                return(Created(createdAtUrl, returnedTest));
            }
            catch (EntityNotFoundException)
            {
                return(NotFound());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Ejemplo n.º 2
0
        public ActionResult Add()
        {
            List <TestQuestion> questions = new List <TestQuestion>()
            {
                new TestQuestion()
                {
                    Text = "Who are u?", AnswerOptions = new string[] { "qew", "zxc", "kgb" }, CorrectAnswer = "kgb"
                },
                new TestQuestion()
                {
                    Text = "How old are u?", AnswerOptions = new string[] { "15", "21", "19" }, CorrectAnswer = "19"
                },
                new TestQuestion()
                {
                    Text = "What is ur gender?", AnswerOptions = new string[] { "male", "female" }, CorrectAnswer = "male"
                }
            };

            Test test = new Test()
            {
                Title     = "Select a correct answer",
                Questions = questions
            };

            testService.Create(test);

            return(View());
        }
Ejemplo n.º 3
0
 public ActionResult CreateTest(CreateTestViewModel model)
 {
     if (testService.GetOneByPredicate(u => u.Title.ToLower() == model.Title.ToLower()) != null)
     {
         ModelState.AddModelError(String.Empty, "Test with this title already registered.");
         return(View(model));
     }
     if (ModelState.IsValid)
     {
         int userId = userService.GetOneByPredicate(u => u.UserName == User.Identity.Name).Id;
         model.Questions = new List <QuestionViewModel>();
         var test = model.ToBllTest();
         test.DateCreation = DateTime.Now;
         test.UserId       = userId;
         test.TestResults  = new List <BllTestResult>();
         testService.Create(test);
         if (Request.IsAjaxRequest())
         {
             int testId = testService.GetOneByPredicate(t => t.Title == model.Title).Id;
             return(RedirectToAction("TestDetails", "Test", new { testId = testId }));
         }
         return(Redirect(Url.Action("ShowLastTests", "Test")));
     }
     return(PartialView("_CreateTest"));
 }
Ejemplo n.º 4
0
        public ActionResult Create(IFormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                Test test = new Test
                {
                    Number    = Convert.ToInt32(collection["Number"]),
                    Hidden    = Convert.ToBoolean(collection["Hidden"]),
                    Input     = collection["Input"],
                    Output    = collection["Output"],
                    ProblemId = Convert.ToInt16(collection["ProblemId"])
                                //Problem = _problem
                };

                _testService.Create(test);

                tests.Add(test);

                return(View()); //RedirectToAction(nameof(Index));
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 5
0
        public ActionResult Create([Bind(Include = "ID,Title,Description,SectionID")] Test test)
        {
            if (ModelState.IsValid)
            {
                testService.Create(test);
                return(RedirectToAction("Index"));
            }

            ViewBag.SectionID = new SelectList(sectionService.GetAll(), "ID", "Description", test.SectionID);
            return(View(test));
        }
Ejemplo n.º 6
0
        public ActionResult Create(TestModel test)
        {
            List <Question> questions = new List <Question>();

            foreach (var question in test.Questions)
            {
                Type type;
                if (question.Type.Equals("enter"))
                {
                    type = typeService.GetAll().Where(x => x.Status.Equals("Ввод ответа")).FirstOrDefault();
                }
                else
                {
                    type = typeService.GetAll().Where(x => x.Status.Equals("Выбор ответа")).FirstOrDefault();
                }
                List <Answer> answers = new List <Answer>();
                foreach (var answer in question.Answers)
                {
                    answers.Add(new Answer
                    {
                        Desctiption = answer.Answer,
                        Correct     = answer.IsCorrect
                    });
                }
                questions.Add(new Question
                {
                    Description = question.Description,
                    TypeID      = type.ID,
                    Answers     = answers
                });
            }
            testService.Create(new Test
            {
                Description = test.Description,
                Questions   = questions,
                SectionID   = int.Parse(test.Section),
                Title       = test.Title
            });
            ViewBag.SectionID = new SelectList(sectionService.GetAll(), "ID", "Description");
            return(View());
        }
Ejemplo n.º 7
0
        public ActionResult Create(Test test, string courseId)
        {
            try
            {
                _testService.Create(test, courseId);

                return(RedirectToAction("Index", new { courseId = courseId }));
            }
            catch
            {
                return(View(test));
            }
        }
Ejemplo n.º 8
0
 public ActionResult Create(Test test)
 {
     try
     {
         testService.Create(test);
         return(RedirectToAction(nameof(Index)));
     }
     catch (ValidationException ex)
     {
         ModelState.AddModelError("", ex.Message);
         return(View(test));
     }
 }
Ejemplo n.º 9
0
        public IActionResult Post([FromBody] TestVM model)
        {
            TestVM test = _testService.GetAll().Where(x => x.Name == model.Name && x.ThemeId == model.ThemeId).FirstOrDefault();

            if (test != null)
            {
                ModelState.AddModelError(string.Empty, "This test has this theme already");

                return(BadRequest(ModelState));
            }

            _testService.Create(model);

            return(Ok(model));
        }
Ejemplo n.º 10
0
        public IActionResult Index()
        {
            // 資料清單
            var data = _testService.GetData();
            // 單筆資料
            var item = _testService.GetTestVM();

            var editViewModel = new Service.Models.TestEditViewModel()
            {
                Name = "TEST"
            };

            // 新增
            editViewModel.Id = _testService.Create(editViewModel);
            // 更新
            editViewModel.Name = "TEST2";
            _testService.Update(editViewModel);
            // 刪除
            _testService.Delete(editViewModel.Id.Value);
            return(View());
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> _Create(TestEditModel model)
        {
            if (ModelState.IsValid)
            {
                TestDTO testDto = _mapper.Map <TestDTO>(model);
                testDto.AuthorId = UserId;
                testDto.DateTime = DateTime.UtcNow;

                OperationDetails result = await _testService.Create(testDto);

                if (result.Succeeded)
                {
                    TempData["PartialMessageSuccess"] = result.Message;
                    return(RedirectToAction("_ExtendedAdminTestSearch", "Panel"));
                }
                else
                {
                    ModelState.AddModelError(result.Property, result.Message);
                }
            }

            return(PartialView(model));
        }
Ejemplo n.º 12
0
 public ActionResult Create(Test test)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (TestService.FindBy(p => p.TestName.Trim() == test.TestName.Trim()).Count() > 0)
             {
                 ViewBag.NumberOfParametersRequired = Convert.ToInt32(ConfigurationManager.AppSettings["DefaultSelectedNoOfTestParameter"]);
                 fillDropdown();
                 ModelState.AddModelError("", "Test alreary exists with same name");
                 return(View());
             }
             TestService.Create(test);
         }
     }
     catch
     {
     }
     ViewBag.NumberOfParametersRequired = Convert.ToInt32(ConfigurationManager.AppSettings["DefaultSelectedNoOfTestParameter"]);
     fillDropdown();
     return(View());
 }
Ejemplo n.º 13
0
 public async Task <int> Post([FromBody] TestCreateUpdateDTO dto)
 {
     return(await _testService.Create(dto));
 }
Ejemplo n.º 14
0
        public IActionResult Create(CreateTestInput input)
        {
            var dto = _testService.Create(input);

            return(Ok(dto));
        }
Ejemplo n.º 15
0
        public IHttpActionResult Submit([FromBody] ResultDataVM data)
        {
            try
            {
                var contents = JsonConvert.DeserializeObject <ResultVM>(data.Json.Decrypt());

                BaseTest           baseTest     = _baseTestService.Find(_ => _.Id == contents.ExamId);
                List <TestContent> testContents = new List <TestContent>();

                string studentCode = contents.StudentId;

                if (baseTest != null)
                {
                    if (_testService.Find(_ => _.BaseTestId == baseTest.Id &&
                                          _.StudentCode == studentCode) == null)
                    {
                        float totalMarkOfTest = 0;
                        float finalMarkOfTest = 0;
                        foreach (var ele in contents.ExamAs)
                        {
                            ele.Answers = ele.Answers ?? new List <int>();

                            Question quest = _questionService.Find(_ => _.Code == ele.QuestionCode, _ => _.Options);

                            List <Option> rightAnswer       = quest.Options.Where(_ => _.IsCorrect).ToList();
                            List <Option> finalRightAnswers = quest.Options.Where(_ => _.IsCorrect).ToList();
                            List <Option> studentAnswers    = _optionService.Search(_ => ele.Answers.Contains(_.Id)).ToList();

                            totalMarkOfTest += quest.Mark;
                            float markOfQuestion,
                                  markRightAnswers = 0,
                                  markWrongAnswers = 0;

                            rightAnswer.ForEach(_ =>
                            {
                                if (ele.Answers.Contains(_.Id))  //mỗi lần nó trả lời đúng 1 câu
                                {
                                    finalRightAnswers.Remove(_); //trừ đi những câu nó đã đánh đúng => còn lại những câu đúng mà nó k đánh
                                    var temp = studentAnswers.Find(x => x.Id == _.Id);
                                    studentAnswers.Remove(temp); //những câu nó sai
                                }
                            });

                            finalRightAnswers.ForEach(_ =>
                            {
                                markRightAnswers += Math.Abs((_.Percent * quest.Mark) / 100);
                            });
                            studentAnswers.ForEach(_ =>
                            {
                                markWrongAnswers += Math.Abs((_.Percent * quest.Mark) / 100);//điểm của những câu trả lời sai
                            });

                            markOfQuestion = (float)Math.Round(quest.Mark - markWrongAnswers - markRightAnswers, 2);

                            finalMarkOfTest += markOfQuestion < 0 ? 0 : markOfQuestion;

                            testContents.Add(new TestContent
                            {
                                Answers      = JsonConvert.SerializeObject(ele.Answers ?? new List <int>()),
                                Mark         = markOfQuestion < 0 ? 0 : markOfQuestion,
                                QuestionCode = ele.QuestionCode
                            });
                        }

                        var auth = _authenticationService.Find(_ => _.WebId == studentCode &&
                                                               _.Username == User.Identity.Name);

                        if (auth != null)
                        {
                            _authenticationService.Delete(auth);
                        }


                        var test = new Test
                        {
                            BaseTestId   = contents.ExamId,
                            IsFinished   = true,
                            StartTime    = baseTest.StartTime,
                            EndTime      = DateTimeOffset.Now,
                            Duration     = DateTimeOffset.Now - baseTest.StartTime,
                            Mark         = finalMarkOfTest,
                            TotalMark    = totalMarkOfTest,
                            StudentCode  = studentCode,
                            TestContents = testContents
                        };
                        bool result = _testService.Create(test);
                    }
                }
            }
            catch (Exception ex)
            {
                _loggingService.Write(ex);
                return(InternalServerError(ex));
            }
            return(Ok());
        }