コード例 #1
0
    protected void btn_remove_question_OnClick(object sender, EventArgs args)
    {
        QuestionID = 0;

        int question_id;

        if (int.TryParse(ddl_questions.SelectedValue, out question_id))
        {
            var question_elements = qLrn_QuestionElement.GetQuestionElements(question_id);

            foreach (var e in question_elements)
            {
                e.MarkAsDelete = 1;
                e.Update();
            }

            var assessment_questions = qLrn_AssessmentQuestion.GetQuestionUsage(question_id);

            foreach (var q in assessment_questions)
            {
                q.MarkAsDelete = 1;
                q.LastModified = DateTime.Now;
                q.LastModifiedBy = Convert.ToInt32(Context.Items["UserID"]);

                q.Update();
            }

            var assessment_id_collection = assessment_questions.Select(aq => aq.AssessmentID).Distinct();

            foreach (var a in assessment_id_collection)
            {
                if (qLrn_AssessmentQuestion_View.GetAssessmentQuestions(a).Count < 1)
                {
                    var assessment = new qLrn_Assessment(a);

                    assessment.MarkAsDelete = 1;

                    assessment.Update();
                }
            }

            var question = new qLrn_Question(question_id);

            question.MarkAsDelete = 1;
            question.LastModified = DateTime.Now;
            question.LastModifiedBy = Convert.ToInt32(Context.Items["UserID"]);

            question.Update();

            UpdateQuestionsList();

            MessageLog("SUCCESS: Question removed.");

            Response.Redirect("question-editor.aspx");
        }
        else MessageLog("ERROR: You must select a question.");
    }
コード例 #2
0
    protected void updateQuestionForm(string mode)
    {
        UpdateCategoriesList();

        if (mode == "new")
        {
            btnReloadQuestions.Visible = false;
            lblModeNewTitle.Text = "CREATE A NEW QUESTION";
            btnNewQuestion.Visible = false;
            plhNewQuestions.Visible = true;
            plhEditQuestion.Visible = false;
            btnReloadQuestions.Visible = false;
            plhQuestionDetails.Visible = true;
            btnDisplayQuestions.Text = "<i class=\"icon-circle-arrow-left\"></i> Back to Existing Questions";
            btnDisplayQuestions.Visible = true;
            btnNewQuestion.Visible = false;
            litQuestionEditTitle.Text = "Create New Question";
        }
        else
        {
            btnReloadQuestions.Visible = false;
            btnDisplayQuestions.Visible = false;
            lblMode.Text = "FIND A QUESTION";
            plhNewQuestions.Visible = false;
            plhQuestionDetails.Visible = true;
            plhEditQuestion.Visible = true;
            btnNewQuestion.Visible = true;
            int question_category_id = 0;
            litQuestionEditTitle.Text = "Edit Existing Question";
            if (!String.IsNullOrEmpty(Request.QueryString["questionID"]))
            {
                int question_id = Convert.ToInt32(Request.QueryString["questionID"]);
                qLrn_Question question = new qLrn_Question(question_id);
                lblTitle.Text = "Question Editor [ID:" + question.QuestionID + "]";
                if (question.QuestionCategoryID != null)
                    question_category_id = (int)question.QuestionCategoryID;
                QuestionID = question_id;

                RefreshEditFields();

                UpdateAssessmentView();

                EnableQuestionRemoval();

            }
            if (question_category_id > 0)
            {
                ddl_question_categories.SelectedValue = Convert.ToString(question_category_id);
                ddl_question_categories_inactive.SelectedValue = Convert.ToString(question_category_id);
            }
            UpdateQuestionsList();
            ddl_questions.SelectedValue = Convert.ToString(QuestionID);
        }
    }
コード例 #3
0
    protected void ddl_questions_OnSelectedIndexChanged(object sender, EventArgs args)
    {
        int question_id;

        if (int.TryParse(ddl_questions.SelectedValue, out question_id))
        {
            QuestionID = question_id;
            qLrn_Question question = new qLrn_Question(QuestionID);

            RefreshEditFields();

            UpdateAssessmentView();

            EnableQuestionRemoval ();

            plhQuestionDetails.Visible = true;

            if (question.QuestionCategoryID != null)
                ddl_question_categories_inactive.SelectedValue = Convert.ToString(question.QuestionCategoryID);
        }
    }
コード例 #4
0
    protected void RefreshEditFields()
    {
        var question = new qLrn_Question(QuestionID);

        if (question.QuestionID > 0)
        {
            txt_new_question.Text = question.Text;
            txt_answer.Text = question.AnswerText;

            var question_elements = qLrn_QuestionElement.GetQuestionElements(QuestionID);

            for (int i = 0; i < question_elements.Count && i < 6; i++)
            {
                var c = ph_question_elements.Controls[i] as IQuestionElementEditControl;

                if (c != null && !(c is Literal))
                {
                    var q = question_elements.ElementAt (i);

                    c.SetDetails(q.Details);
                    c.SetCorrect(q.Correct);
                    c.SetQuestionElementId(q.QuestionElementID);
                }
            }
        }
    }
コード例 #5
0
    protected void btn_save_question_OnClick(object sender, EventArgs args)
    {
        if (QuestionID > 0)
        {
            var question = new qLrn_Question(QuestionID);

            question.Text = txt_new_question.Text;
            question.AnswerText = txt_answer.Text;
            question.Created = DateTime.Now;
            question.CreatedBy = Convert.ToInt32(Context.Items["UserID"]);
            question.LastModified = DateTime.Now;
            question.LastModifiedBy = Convert.ToInt32(Context.Items["UserID"]);

            int question_category_id = GetNewQuestionCategoryID();
            if (question_category_id > 0) question.QuestionCategoryID = question_category_id;

            question.Update();

            foreach (var c in ph_question_elements.Controls)
            {
                var element_control = c as IQuestionElementEditControl;

                if (element_control != null)
                {
                    int question_element_id = element_control.GetQuestionElementId ();

                    if (question_element_id > 0)
                    {
                        var e = new qLrn_QuestionElement(question_element_id);

                        if (string.IsNullOrEmpty (element_control.GetDetails ()))
                        {
                            e.MarkAsDelete = 1;
                        }
                        else
                        {
                            e.Details = element_control.GetDetails ();
                            e.Correct = element_control.IsCorrect ();
                            e.AnswerOrder = element_control.GetOrderNumber();
                        }

                        e.Update ();
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty (element_control.GetDetails ()))
                        {
                            var e = AddNewQuestionElement (question.QuestionID, element_control.GetDetails (), element_control.IsCorrect ());
                            element_control.SetQuestionElementId(e.QuestionElementID);
                        }
                    }
                }
            }
            Response.Redirect("question-editor.aspx?mode=edit&questionID=" + question.QuestionID);
        }
        else
        {
            var question = new qLrn_Question();

            question.Text = txt_new_question.Text;
            question.AnswerText = txt_answer.Text;
            question.Available = "Yes";
            question.Created = DateTime.Now;
            question.CreatedBy = Convert.ToInt32(Context.Items["UserID"]);

            int question_category_id = GetNewQuestionCategoryID();
            if (question_category_id > 0) question.QuestionCategoryID = question_category_id;

            QuestionID = question.AddQuestion();

            foreach (var c in ph_question_elements.Controls)
            {
                var element_control = c as IQuestionElementEditControl;

                if (element_control != null)
                {
                    string element_details = element_control.GetDetails();

                    if (!string.IsNullOrEmpty(element_details))
                    {
                        var e = AddNewQuestionElement(question.QuestionID, element_details, element_control.IsCorrect());
                        element_control.SetQuestionElementId(e.QuestionElementID);
                    }
                }
            }

            /*
            updateQuestionForm("edit");
            UpdateQuestionsList();
            ddl_questions.SelectedValue = Convert.ToString(question.QuestionID);
            EnableQuestionRemoval();
             */
            Response.Redirect("question-editor.aspx?mode=edit&questionID=" + question.QuestionID);
        }

        MessageLog("SUCCESS: Question saved.");
    }