Пример #1
0
        public static bool NewPart5(Guid quizId) //Tất cả cái add đều phải có một cái quizId
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            for (byte i = 0; i < 8; i++)
            {
                //8 pairs of reading texts with 5 questions per pair
                var groupId = bl_group.Create(
                    quizId,
                    5, //Thay đổi đối với từng part
                    String.Format("Part5.{0}-{1}", 101 + i * 5, 105 + i * 5),
                    i,
                    null, null);

                //Create 5 question each a group
                for (byte ord = 0; ord < 5; ord++)
                {
                    bl_question.Create(
                        groupId,
                        quizId,
                        (byte)(101 + i * 5 + ord),
                        null, null, null, null, null, null, null, 0);
                }
            }
            return(true);
        }
Пример #2
0
        public static bool NewPart6(Guid quizId) //Tất cả cái add đều phải có một cái quizId
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            for (byte i = 0; i < 3; i++)
            {
                //3 pairs of reading texts with 4 questions per pair
                var questionGroupId = Guid.NewGuid();
                var groupId         = bl_group.Create(
                    quizId,
                    6, //Thay đổi đối với từng part
                    String.Format("Part6.{0}-{1}", 141 + i * 4, 144 + i * 4),
                    i,
                    null, null);

                //Create 4 question each a group
                for (byte ord = 0; ord < 4; ord++)
                {
                    bl_question.Create(
                        groupId, //phải trả về đúng với group id phía trên
                        quizId,
                        (byte)(141 + i * 4 + ord),
                        null, null, null, null, null, null, null, 0);
                }
            }
            return(true);
        }
Пример #3
0
        public static bool NewPart7(Guid quizId, byte numberOfGroup, List <byte> itemList)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            int tmp = 0;

            for (byte i = 0; i < itemList.Count; i++)
            {
                //4 pairs of reading texts with 5 questions per pair

                var questionGroupId = Guid.NewGuid();
                var groupId         = bl_group.Create(
                    quizId,
                    7, //Thay đổi đối với từng part (thứ tự part)
                    String.Format("Part7.{0}-{1}", 153 + tmp, 153 + tmp + itemList[i] - 1),
                    i,
                    null, null);

                for (byte ord = 0; ord < itemList[i]; ord++)
                {
                    bl_question.Create(
                        groupId,                 //phải trả về đúng với group id phía trên
                        quizId,
                        (byte)(153 + tmp + ord), //đúng thứ tự câu hỏi trong một bộ quiz
                        null, null, null, null, null, null, null, 0);
                }

                tmp += itemList[i];
            }
            return(true);
        }
Пример #4
0
        public ActionResult Publishing(Guid quizId, Guid testId)
        {
            bl_QuestionGroup bl_group = new bl_QuestionGroup();
            var group = bl_group.GetByQuizId(quizId).First();

            return(Redirect(string.Format("/group/run?groupId={0}&testId={1}", group.QuestionGroupId, testId)));
        }
Пример #5
0
        //Cái hàm này như là hàm khởi tạo, chỉ chạy 1 lần mỗi khi tạo một quiz mới
        //Nhiệm vụ : Để insert vào database số lượng câu hỏi của từng questionGroup.
        //Sau đó chúng ta sẽ cập nhật lại để đảm bảo tính đúng đắn của bộ câu hỏi.
        //Có thể xem thêm "http://localhost:12347/Bq_TuCuong/UpdatePart8?groupId=c38d171e-524b-466e-b814-be1d78398f7c"
        //để hiểu nó hoạt động như thế nào
        public static bool NewPart8(Guid quizId) //Tất cả cái add đều phải có một cái quizId
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            for (byte i = 0; i < 4; i++)
            {
                //4 pairs of reading texts with 5 questions per pair
                var groupId = bl_group.Create(
                    quizId,
                    8,     //Thay đổi đối với từng part (thứ tự part)
                    String.Format("Part8.{0}-{1}", 181 + i * 5, 185 + i * 5),
                    i,
                    null, null);

                //Create 5 question each a group
                for (byte ord = 0; ord < 5; ord++)
                {
                    bl_question.Create(
                        groupId,                   //phải trả về đúng với group id phía trên
                        quizId,
                        (byte)(181 + i * 5 + ord), //đúng thứ tự câu hỏi trong một bộ quiz
                        null, null, null, null, null, null, null, 0);
                }
            }
            return(true);
        }
Пример #6
0
        public ActionResult Navigation(Guid quizId, Guid testId)
        {
            bl_QuestionGroup       bl_group = new bl_QuestionGroup();
            List <ps_PartViewItem> model    = new List <ps_PartViewItem>();

            for (byte i = 1; i <= 8; i++)
            {
                model.Add(new ps_PartViewItem
                {
                    PartName = String.Format("Part{0}", i),
                    TestId   = testId,
                    Groups   = bl_group.GetByPartId(quizId, i)
                });
            }

            bl_Answer blAnswer = new bl_Answer();

            ViewBag.Done   = blAnswer.GetNumberOfDone(testId);
            ViewBag.TestId = testId;

            //get the rest time
            bl_Test blTest   = new bl_Test();
            var     test     = blTest.GetById(testId);
            double  restTime = (test.StartTime.AddHours(2) - DateTime.Now).TotalSeconds;

            ViewBag.Minute = Math.Round(restTime / 60, 0) - 1;
            ViewBag.Second = Math.Round(restTime % 60, 0);
            return(View("_Navigation", model));
        }
Пример #7
0
        public ActionResult View(Guid groupId, Guid testId)
        {
            bl_Test          bl_test     = new bl_Test();
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();
            bl_Answer        bl_answer   = new bl_Answer();

            var test  = bl_test.GetById(testId);
            var time  = test.StartTime.AddHours(2) - DateTime.Now;
            var group = new ps_Group();

            group.Group           = bl_group.GetById(groupId);
            group.Group.Paragraph = HttpUtility.HtmlDecode(group.Group.Paragraph);
            group.QuestionList    = bl_question.GetByGroupId(groupId);

            ViewBag.QuizId       = group.Group.QuizId;
            ViewBag.GroupId      = group.Group.QuestionGroupId;
            ViewBag.TestId       = testId;
            ViewBag.TimeLeft     = String.Format("{0}h{1}m{2}s", time.Hours, time.Minutes, time.Seconds);
            ViewBag.QuestionDone = bl_answer.GetQuestionDone(testId).Count;
            double Timeab = time.TotalSeconds;

            ViewBag.Time = Timeab;

            return(View(group));
        }
Пример #8
0
        public ActionResult UpdatePart8(Guid groupId)
        {
            //Phải là người tạo mới được sửa
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            if (bl_group.GetById(groupId).bq_Quiz.UserId ==
                (Guid)Membership.GetUser().ProviderUserKey)
            {
                var group        = bl_group.GetById(groupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);

                ps_Group part8 = new ps_Group();
                part8.Group           = group;
                part8.Group.Paragraph = HttpUtility.HtmlDecode(part8.Group.Paragraph);
                part8.QuestionList    = questionList;

                ViewBag.QuizId = group.QuizId;
                return(View(part8));
            }
            else
            {
                return(Redirect("/"));
            }
        }
Пример #9
0
        public ActionResult UpdatePart3(Guid groupId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            if (bl_group.GetById(groupId).bq_Quiz.UserId ==
                (Guid)Membership.GetUser().ProviderUserKey)
            {
                var group        = bl_group.GetById(groupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);

                ps_Group part3 = new ps_Group();
                part3.Group        = group;
                part3.QuestionList = questionList;

                //db.bq_QuestionGroup_UpdateMediaPath(groupId,null);
                ViewBag.QuestionGroupId = groupId;
                ViewBag.QuizId          = group.QuizId;
                return(View(part3));
            }
            else
            {
                return(Redirect("/"));
            }
        }
Пример #10
0
        public static bool NewPart4(Guid quizId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            for (byte i = 0; i < 10; i++)
            {
                Int32 s = 70 + i * 3;

                //4 pairs of reading texts with 10 questions per pair
                var questionGroupId = Guid.NewGuid();

                var groupId = bl_group.Create(
                    quizId,
                    4, //Thay đổi đối với từng part (thứ tự part)
                    String.Format("Part4.{0}-{1}", s + 1, s + 3),
                    i,
                    null, null);

                //Create 3 question each a group
                for (byte ord = 0; ord < 3; ord++)
                {
                    bl_question.Create(
                        groupId, //phải trả về đúng với group id phía trên
                        quizId,
                        (byte)(s + ord + 1),
                        null, null, null, null, null, null, null, 0);
                }
            }

            return(true);
        }
Пример #11
0
        //update question group
        public ActionResult UpdateNav(Guid quizId)
        {
            bl_QuestionGroup bl_group = new bl_QuestionGroup();
            var groupId = bl_group.GetByPartId(quizId, 1)
                          .OrderBy(m => m.Order)
                          .First().QuestionGroupId;

            return(RedirectToAction("update", new { groupId = groupId }));
        }
Пример #12
0
        public ActionResult RunNav(Guid testId)
        {
            bl_Test          bl_test  = new bl_Test();
            bl_QuestionGroup bl_group = new bl_QuestionGroup();

            Guid quizId  = bl_test.GetById(testId).QuizId;
            Guid groupId = bl_group
                           .GetByPartId(quizId, 1).OrderBy(m => m.Order)
                           .First().QuestionGroupId;

            return(RedirectToAction("Run", new { groupId = groupId, testId = testId }));
        }
Пример #13
0
        public ActionResult Update(Guid groupId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();
            ps_Group         model       = new ps_Group();

            model.GroupId      = groupId;
            model.Group        = bl_group.GetById(groupId);
            model.QuizId       = model.Group.QuizId;
            model.QuestionList = bl_question.GetByGroupId(groupId);

            return(View(model));
        }
Пример #14
0
        public ActionResult UpdatePart8(ps_Group part8)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            bl_group.Update(
                part8.Group.QuestionGroupId,
                part8.Group.Paragraph);

            if (ModelState.IsValid)
            {
                foreach (var question in part8.QuestionList)
                {
                    bl_question.Update(
                        question.QuestionId,
                        question.Paragraph,
                        question.OptionA,
                        question.OptionB,
                        question.OptionC,
                        question.OptionD,
                        question.Answer);
                }

                //Trả về trang chủ
                //return Redirect("/");
                part8.Group           = bl_group.GetById(part8.Group.QuestionGroupId);
                part8.Group.Paragraph = HttpUtility.HtmlDecode(part8.Group.Paragraph);
                ViewBag.QuizId        = part8.Group.QuizId;

                //chỉnh lại khi request
                var group        = bl_group.GetById(part8.Group.QuestionGroupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);
                part8.QuestionList = questionList;

                return(View(part8));
            }
            else
            {
                //Nếu như dữ liệu gởi lên không đạt yêu cầu
                //Trả về client trạng thái dữ liệu đang làm dở
                part8.Group           = bl_group.GetById(part8.Group.QuestionGroupId);
                part8.Group.Paragraph = HttpUtility.HtmlDecode(part8.Group.Paragraph);
                ViewBag.QuizId        = part8.Group.QuizId;

                //chỉnh lại khi request
                var group        = bl_group.GetById(part8.Group.QuestionGroupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);
                part8.QuestionList = questionList;
                return(View(part8));
            }
        }
Пример #15
0
        public ActionResult Nav_UpdateGroup(Guid quizId)
        {
            bl_QuestionGroup           bl_group = new bl_QuestionGroup();
            List <ps_EditGroupNavItem> model    = new List <ps_EditGroupNavItem>();

            for (byte i = 1; i <= 8; i++)
            {
                model.Add(new ps_EditGroupNavItem
                {
                    PartName = String.Format("Part{0}", i),
                    Groups   = bl_group.GetByPartId(quizId, i)
                });
            }

            return(View(model));
        }
Пример #16
0
        public ActionResult UpdatePart6(ps_Group part6)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            if (ModelState.IsValid)
            {
                bl_group.Update(
                    part6.Group.QuestionGroupId,
                    part6.Group.Paragraph);

                foreach (var question in part6.QuestionList)
                {
                    bl_question.Update(
                        question.QuestionId,
                        question.Paragraph,
                        question.OptionA,
                        question.OptionB,
                        question.OptionC,
                        question.OptionD,
                        question.Answer);
                }

                part6.Group    = bl_group.GetById(part6.Group.QuestionGroupId);
                ViewBag.QuizId = part6.Group.QuizId;

                //chỉnh lại khi request
                var group        = bl_group.GetById(part6.Group.QuestionGroupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);
                part6.QuestionList = questionList;

                return(View(part6));
            }
            else
            {
                part6.Group    = bl_group.GetById(part6.Group.QuestionGroupId);
                ViewBag.QuizId = part6.Group.QuizId;

                //chỉnh lại khi request
                var group        = bl_group.GetById(part6.Group.QuestionGroupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);
                part6.QuestionList = questionList;

                return(View(part6));
            }
        }
Пример #17
0
        public ActionResult Share(Guid id, string userName)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();
            bl_User          blUser      = new bl_User();

            var group = new ps_Group();
            var user  = blUser.GetByUserName(userName);

            group.Group           = bl_group.GetById(id);
            group.Group.Paragraph = HttpUtility.HtmlDecode(group.Group.Paragraph);
            group.QuestionList    = bl_question.GetByGroupId(id);

            if (user != null)
            {
                ViewBag.DisplayName = user.DisplayName;
            }
            return(View(group));
        }
Пример #18
0
        public List <Group> Get(byte partNumber, int lastSync = 0)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            List <Group> data = bl_group.GetAllPartById(partNumber)
                                .Where(m => m.SyncVersion > lastSync)
                                .Select(m => new Group(m))
                                .ToList();

            foreach (var item in data)
            {
                item.Questions = bl_question.GetByGroupId(item.GroupId)
                                 .Select(m => new Question(m))
                                 .ToList();
            }

            return(data);
        }
Пример #19
0
        public ActionResult Run(Guid groupId, Guid testId)
        {
            bl_Test          bl_test     = new bl_Test();
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();
            bl_Answer        bl_answer   = new bl_Answer();

            var test  = bl_test.GetById(testId);
            var time  = test.StartTime.AddHours(2) - DateTime.Now;
            var group = new ps_Group();

            group.Group  = bl_group.GetById(groupId);
            group.QuizId = group.Group.QuizId;
            group.TestId = testId;

            group.Group.Paragraph = HttpUtility.HtmlDecode(group.Group.Paragraph);
            group.QuestionList    = bl_question.GetByGroupId(groupId);
            group.AnswerList      = bl_answer.GetByGroupId(groupId, testId);
            return(View(group));
        }
Пример #20
0
        public ActionResult UpdatePart2(Guid groupId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            if (bl_group.GetById(groupId).bq_Quiz.UserId == ps_Membership.GetUser().UserId)
            {
                var group        = bl_group.GetById(groupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);

                ps_Group part2 = new ps_Group();
                part2.Group        = group;
                part2.QuestionList = questionList;

                ViewBag.QuizId = group.QuizId;
                return(View(part2));
            }
            else
            {
                return(Redirect("/"));
            }
        }
Пример #21
0
        public static ps_TestingNav GetNav(Guid groupId)
        {
            bl_QuestionGroup bl_group = new bl_QuestionGroup();
            var nav    = new ps_TestingNav();
            var nextId = Guid.NewGuid();
            var backId = Guid.NewGuid();

            var group = bl_group.GetById(groupId);
            var temp  = bl_group.GetByPartId(group.QuizId, group.PartId);

            int m = temp.Count();

            for (int i = 0; i < m; i++)
            {
                if (temp[i].QuestionGroupId == groupId)
                {
                    if (i == 0)
                    {
                        nextId = temp[i + 1].QuestionGroupId;
                        backId = temp[m - 1].QuestionGroupId;
                    }
                    if (i == m - 1)
                    {
                        nextId = temp[0].QuestionGroupId;
                        backId = temp[i - 1].QuestionGroupId;
                    }

                    if (i > 0 && i < m - 1)
                    {
                        nextId = temp[i + 1].QuestionGroupId;
                        backId = temp[i - 1].QuestionGroupId;
                    }
                }
            }

            nav.PreGroup  = backId;
            nav.NextGroup = nextId;
            return(nav);
        }
Пример #22
0
        public ActionResult UpdatePart7(Guid groupId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            if (bl_group.GetById(groupId).bq_Quiz.UserId == ps_Membership.GetUser().UserId)
            {
                var group        = bl_group.GetById(groupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);

                ps_Group part7 = new ps_Group();
                part7.Group           = group;
                part7.Group.Paragraph = HttpUtility.HtmlDecode(part7.Group.Paragraph);
                part7.QuestionList    = questionList;

                ViewBag.QuizId = group.QuizId;
                return(View(part7));
            }
            else
            {
                return(Redirect("/"));
            }
        }
Пример #23
0
        public ActionResult UpdatePart5(Guid groupId)
        {
            bl_QuestionGroup bl_group    = new bl_QuestionGroup();
            bl_Question      bl_question = new bl_Question();

            //Phải là người tạo mới được sửa
            if (bl_group.GetById(groupId).bq_Quiz.UserId ==
                (Guid)Membership.GetUser().ProviderUserKey)
            {
                var group        = bl_group.GetById(groupId);
                var questionList = bl_question.GetByGroupId(group.QuestionGroupId);

                ps_Group part5 = new ps_Group();
                part5.Group        = group;
                part5.QuestionList = questionList;

                ViewBag.QuizId = group.QuizId;
                return(View(part5));
            }
            else
            {
                return(Redirect("/"));
            }
        }