Exemplo n.º 1
0
        public ActionResult Create(NHiberanteDal.DTO.TestDto test, int itemid)
        {
            test.Author = _profileService.GetByName(User.Identity.Name);
            test.CreationDate = DateTime.Now;
            test.EditDate = DateTime.Now;

            //if (ModelState.IsValid)
            //{
                var newId = 0;
                if (test.TestType.ID == 2)
                    newId = _testService.AddTestToCourse(itemid, test);
                else if(test.TestType.ID == 1)
                    newId = _testService.AddTestToLearningMaterial(itemid, test);
                if (newId > 0)
                {
                    return RedirectToAction("Edit", new { id = newId });
                }
                else
                {
                    //todo log error
                }
            //}
            // bug : problem with null TestTypes in View , recreate TestTypes list before sending model to view
            return View(test);
        }
        public ActionResult Edit(NHiberanteDal.DTO.CourseDto course)
        {
            //Fixing ModelState Valid Error
            if (ModelState.ContainsKey("CourseType"))
            {
                ModelState.Remove("CourseType");
            }

            if (ModelState.IsValid)
            {
                if (_courseService.Update(course, true))
                {
                    return RedirectToAction("Details", new { id = course.ID });
                }

                ViewBag.Error = Common.ErrorMessages.Course.UpdateToDbError;
                return View("Error");
            }

            ViewBag.Error = Common.ErrorMessages.Course.ModelUpdateError;
            return View("Error");
        }
        public ActionResult Create(NHiberanteDal.DTO.CourseDto course)
        {
            course.CreationDate = DateTime.Now;
            course.ShoutBox = new NHiberanteDal.DTO.ShoutboxModelDto();

            course.CourseType = new NHiberanteDal.DTO.CourseTypeModelDto { ID = NHiberanteDal.DTO.CourseDto.DefaultCourseTypeId };

            course.Group = new NHiberanteDal.DTO.GroupModelDto
                               {
                                   GroupName = "DefaultCourseGroupName",
                                   GroupType = new NHiberanteDal.DTO.GroupTypeModelDto { ID = NHiberanteDal.DTO.CourseDto.DefaultGroupTypeId }
                               };

            //Fixing ModelState Valid Error
            if (ModelState.ContainsKey("CourseType"))
            {
                var courseTypeId = Int32.Parse(ModelState["CourseType"].Value.AttemptedValue);
                course.CourseType = new NHiberanteDal.DTO.CourseTypeModelDto { ID = courseTypeId };
                ModelState.Remove("CourseType");
            }

            if (ModelState.IsValid)
            {

                var id = _courseService.AddCourse(course);

                if (id.HasValue)
                    return RedirectToAction("Details", new { id });

                ViewBag.Error = Common.ErrorMessages.Course.AddToDbError;
                return View("Error");
            }

            ViewBag.Error = Common.ErrorMessages.Course.ModelUpdateError;
            return View("Error");
        }
Exemplo n.º 4
0
 /// <summary>
 /// Method used to calculate final score
 /// </summary>
 /// <param name="test">Instance of test model with questions and answers</param>
 /// <param name="maxValue">Maximum value threshold eg with 100 ( we would had 0-100 mark )</param>
 /// <returns></returns>
 private double CalculateMark(NHiberanteDal.DTO.TestDto test, int maxValue)
 {
     var allQuestionsWithAnswers = test.Questions.Where(q => q.Answers != null).ToList();
     double correctAnswers = allQuestionsWithAnswers.Where(q => q.Answers.Any(a => a.IsSelected && a.Correct)).Count();
     return (correctAnswers / allQuestionsWithAnswers.Count) * maxValue;
 }
Exemplo n.º 5
0
 public JsonResult EditQuestion(int id, NHiberanteDal.DTO.TestQuestionModelDto questionModel)
 {
     questionModel.ID = id;
     var result = _testService.UpdateTestQuestion(questionModel);
     return Json(new ResponseMessage(result));
 }
Exemplo n.º 6
0
 public ActionResult Edit(NHiberanteDal.DTO.TestDto test)
 {
     if (ModelState.IsValid)
     {
         _testService.UpdateTest(test);
         return RedirectToAction("Details", new { id = test.ID });
     }
     return View(test);
 }
Exemplo n.º 7
0
        public ActionResult DoTest(NHiberanteDal.DTO.TestDto testModel)
        {
            if (ModelState.IsValid)
            {
                var mark = CalculateMark(testModel, 100);
                var profile = _profileService.GetByName(User.Identity.Name);

                profile.FinishedTests.Add(new NHiberanteDal.DTO.FinishedTestModelDto()
                                              {
                                                  DateFinished = DateTime.Now,
                                                  Mark = mark,
                                                  TestId = testModel.ID,
                                                  TestName = testModel.Name
                                              });
                var courseId = _journalService.GetCourseIdForTest(testModel.ID);
                var journal = profile.Journals.Where(j => j.Course.ID == courseId).FirstOrDefault();
                if (journal != null)
                {
                    journal.Marks.Add(new NHiberanteDal.DTO.JournalMarkModelDto
                                                {
                                                    DateAdded = DateTime.Now,
                                                    Name = testModel.Name ?? "None",
                                                    Value = mark.ToString()
                                                });
                }
                _profileService.UpdateProfile(profile);
                return View("Score", mark);
            }
            return View(testModel);
        }
Exemplo n.º 8
0
 public JsonResult CreateQuestion(int id, NHiberanteDal.DTO.TestQuestionModelDto questionModel)
 {
     var questionId = _testService.AddQuestion(id, questionModel);
     return Json(new ResponseMessage(true, questionId));
 }