Пример #1
0
    private void InitQuestions(JSONArray questionsArray)
    {
        foreach (JSONNode node in questionsArray)
        {
            string type = node["type"];

            IQuestion question;

            switch (type)
            {
            case "input":
                question = new InputQuestion(node);
                Questions.Add(question);
                break;

            case "one":
                question = new OneQuestion(node);
                Questions.Add(question);
                break;

            case "multiple":
                question = new MultipleQuestion(node);
                Questions.Add(question);
                break;

            case "image-input":
                break;
            }
        }
    }
Пример #2
0
        public static Prompter Input(this Prompter prompter, string name, FunctionOrColorString message,
                                     Action <InputQuestion> setupQuestion = null)
        {
            var question = new InputQuestion(name, message);

            setupQuestion?.Invoke(question);
            prompter.Add(question);
            return(prompter);
        }
Пример #3
0
        public static Question CreateContractQuestion(this QuestionEntity entity)
        {
            Question question;

            switch (entity)
            {
            case InputQuestionEntity inputEntity:
                question = new InputQuestion
                {
                    CorrectAnswer = inputEntity.CorrectAnswer
                };
                break;

            case SelectQuestionEntity select:
                question = new SelectQuestion
                {
                    OneCorrectAnswer = select.OneCorrectAnswer,
                    Options          = select.Options.Select(o => new Option
                    {
                        IsCorrect = o.IsCorrect,
                        Title     = o.Title
                    }).ToArray()
                };
                break;

            case GeneralQuestionEntity _:
                question = new GeneralQuestion();
                break;

            default:
                throw new InvalidOperationException($"Can't create contract model from '{entity.GetType().Name}' entity.");
            }

            question.OrderIndex       = entity.OrderIndex;
            question.Title            = entity.Title;
            question.Description      = entity.Description;
            question.MaxAnswerSeconds = entity.MaxAnswerSeconds;

            return(question);
        }
        private static Question Convert(QuestionEntity entity)
        {
            Question question;

            switch (entity)
            {
            case GeneralQuestionEntity generalQuestionEntity:
                question = new GeneralQuestion();
                break;

            case InputQuestionEntity inputQuestionEntity:
                question = new InputQuestion();
                break;

            case SelectQuestionEntity selectQuestionEntity:
                question = new SelectQuestion
                {
                    OneCorrectAnswer = selectQuestionEntity.OneCorrectAnswer,
                    Options          = selectQuestionEntity.Options
                                       .Select(option => new Option
                    {
                        Id    = option.Id,
                        Title = option.Title
                    })
                                       .ToArray()
                };
                break;

            default:
                throw new InvalidOperationException($"Can't cast '{entity.GetType().FullName}'.");
            }

            question.Title       = entity.Title;
            question.Description = entity.Description;
            question.OrderIndex  = entity.OrderIndex;

            return(question);
        }
Пример #5
0
 protected void Page_Init(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         init();
     }
     for (int i = 0; i < nrintrebari; i++)
     {
         if (questionlist[i].Type.Equals("Tip Grila"))
         {
             questions[i] = new ChoiceQuestion(chosenkeylist[i], questionlist[i], choices[i]);
         }
         else if (questionlist[i].Type.Equals("Standard"))
         {
             questions[i] = new InputQuestion(chosenkeylist[i], questionlist[i], false);
         }
         else if (questionlist[i].Type.Equals("Program"))
         {
             questions[i] = new InputQuestion(chosenkeylist[i], questionlist[i], true);
         }
         questions[i].display(tot);
     }
 }
Пример #6
0
 public void PreviewQuestion(IQuestion question)
 {
     _Question         = (InputQuestion)question;
     questionText.text = _Question.Question;
     InitChecker();
 }
Пример #7
0
    /// <summary>
    /// Parse Xml document and generate questions
    /// </summary>
    private void parseXmlDocument()
    {
        XmlDocument doc = LoadDocumentWithSchemaValidation();

        if (doc == null)
        {
            return;
        }

        XmlNodeList quiz_list = doc.SelectNodes("/quiz/question");

        foreach (XmlNode question_node in quiz_list)
        {
            TealUnity.Question question;

            string type  = question_node.Attributes["type"].Value;
            string title = question_node["title"].InnerText;
            string text  = question_node["text"].InnerText;

            switch (type)
            {
            case "input-number":
            {
                question = new InputQuestion <float>(title, text);
                float answer = 0;
                try
                {
                    answer = float.Parse(question_node["answer"].InnerText);
                }
                catch (FormatException e)
                {
                    Debug.LogError(e.Message);
                }
                ((InputQuestion <float>)question).setAnswer(answer);
                break;
            }

            case "input-text":
            {
                question = new InputQuestion <string>(title, text);
                string answer = question_node["answer"].InnerText;
                ((InputQuestion <string>)question).setAnswer(answer);
                break;
            }

            case "multiple-choice":
            {
                question = new MCQuestion(title, text);
                XmlNodeList answerchoice_list = question_node.SelectNodes("answerchoice");
                int         i = 0;
                foreach (XmlNode anserchoice_node in answerchoice_list)
                {
                    bool   correct     = bool.Parse(anserchoice_node.Attributes["correct"].Value);
                    string answer_text = anserchoice_node["text"].InnerText;

                    AnswerChoice answerchoice = new AnswerChoice(answer_text, correct);

                    if (anserchoice_node["image"] != null)
                    {
                        answerchoice.setImagePath(anserchoice_node["image"].InnerText);
                    }
                    ((MCQuestion)question).setAnswerChoise(answerchoice, i);
                    i++;
                }
                break;
            }

            default:
                continue;
            }

            if (question_node["image"] != null)
            {
                question.setImagePath(question_node["image"].InnerText);
            }

            questions.Add(question);
        }
    }