示例#1
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);
        }
示例#2
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);
        }
示例#3
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("/"));
            }
        }
示例#4
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);
        }
示例#5
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);
        }
示例#6
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);
        }
示例#7
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("/"));
            }
        }
示例#8
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));
        }
示例#9
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));
        }
示例#10
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));
            }
        }
示例#11
0
        public ActionResult Link(Guid questionId, string userName)
        {
            bl_Question blQuestion = new bl_Question();
            bl_User     blUser     = new bl_User();

            var user  = blUser.GetByUserName(userName);
            var model = blQuestion.GetById(questionId);

            if (user != null)
            {
                ViewBag.DisplayName = user.DisplayName;
            }
            return(View(model));
        }
示例#12
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));
            }
        }
示例#13
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);
        }
示例#14
0
        public ActionResult Start(Guid quizId)
        {
            bl_Test     bl_test     = new bl_Test();
            bl_Question bl_question = new bl_Question();
            bl_Answer   bl_answer   = new bl_Answer();

            var testId       = bl_test.Create(ps_Membership.GetUser().UserId, quizId);
            var questionList = bl_question.GetByQuizId(quizId);

            foreach (var item in questionList)
            {
                bl_answer.Modify(
                    testId,
                    item.QuestionId,
                    0);
            }

            return(RedirectToAction("Publishing", "Quiz", new { quizId = quizId, testId = testId }));
        }
示例#15
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));
        }
示例#16
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));
        }
示例#17
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("/"));
            }
        }
示例#18
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("/"));
            }
        }
示例#19
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("/"));
            }
        }