コード例 #1
0
        public Test(string testFileName)
        {
            try
            {
                LoadFailed = false;
                var doc = new XmlDocument();
                doc.Load(testFileName);

                var i = doc.SelectSingleNode("//Info");
                Author       = i.Attributes["author"].Value;
                Language     = i.Attributes["lang"].Value;
                Title        = i.Attributes["title"].Value;
                Lesson       = i.Attributes["lesson"].Value;
                TimeToAnswer = int.Parse(i.Attributes["answertime"].Value);
                TimeToTest   = int.Parse(i.Attributes["testtime"].Value);
                Questions    = new List <Question>();

                doc.SelectNodes("//Question")
                .Cast <XmlElement>()
                .OrderBy(qa => int.Parse(qa.Attributes["id"].Value))
                .ToList()
                .ForEach(q =>
                {
                    var qx = new Question
                    {
                        ID        = int.Parse(q.Attributes["id"].Value),
                        AnswerIDs = q.Attributes["answer"].Value.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(),
                        Title     = q.Attributes["title"].Value,
                        Type      = (Question.TypeEnum)Enum.Parse(typeof(Question.TypeEnum), q.Attributes["type"].Value),
                        Selection = (Question.SelectionEnum)Enum.Parse(typeof(Question.SelectionEnum), q.Attributes["selection"].Value),
                        Text      = q.ChildNodes[0].InnerText.Trim(),
                        Answers   = new List <Question.Answer>()
                    };

                    doc.SelectNodes($"//Question[@id='{qx.ID}']/Answer")
                    .Cast <XmlElement>()
                    .OrderBy(qa => int.Parse(qa.Attributes["id"].Value))
                    .ToList()
                    .ForEach(a =>
                    {
                        var qa = new Question.Answer()
                        {
                            ID    = int.Parse(a.Attributes["id"].Value),
                            Value = qx.Type == Question.TypeEnum.txt ? (object)a.ChildNodes[0].Value : (object)Image.FromStream(new MemoryStream(Convert.FromBase64String(a.ChildNodes[0].Value.Substring(4))))
                        };
                        qx.Answers.Add(qa);
                    });
                    Questions.Add(qx);
                });

                TimeOfStart = DateTime.Now;
                Answers     = new int[Questions.Count][];
                doc         = null;
            }
            catch (Exception ex)
            {
                LoadFailed          = true;
                LoadFailedWithError = ex.Message;
            }
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: FrozenAlex/TestApp
        private void GetData()
        {
            cQuestion.Text = QuestionText.Text;
            // Получить ответы пользователя
            if (cQuestion is Question.Select)
            {
                ((Question.Select)cQuestion).Answers.Clear();
                foreach (var answer in SelectAnswer.Items)
                {
                    CheckBox check = answer as CheckBox;
                    TextBox textBox = check.Content as TextBox;
                    Question.Answer answ = new Question.Answer() { Right = (bool)check.IsChecked, Text = textBox.Text };
                    ((Question.Select)cQuestion).Answers.Add(answ);
                }
            }

            if (cQuestion is Question.Radio)
            {
                ((Question.Radio)cQuestion).Answers.Clear();
                foreach (var answer in RadioAnswer.Items)
                {
                    RadioButton check = answer as RadioButton;
                    TextBox textBox = check.Content as TextBox;
                    Question.Answer answ = new Question.Answer() { Right = (bool)check.IsChecked, Text = textBox.Text };
                    ((Question.Radio)cQuestion).Answers.Add(answ);
                }
            }

            if (cQuestion is Question.Edit)
            {
                ((Question.Edit)cQuestion).answer = TextAnswer.Text;
            }
        }
コード例 #3
0
    public void OnAnswerClicked(int buttonIndex)
    {
        bool answerCorrect = false;

        Debug.LogAssertion("BUTTON INDEX: " + buttonIndex + " RIGHT ANSWER: " + rightAnswerIndex);

        if (buttonIndex == rightAnswerIndex)
        {
            teamManager.localPlayer.IncrementScore();
            trueFalse.color = trueAnswerColor;
            answerCorrect   = true;
        }
        else
        {
            trueFalse.color = falseAnswerColor;
            answerCorrect   = false;
        }

        answerButtons[buttonIndex].GetComponent <EWZButtonState>().AnswerHit(answerCorrect);

        var answer = new Question.Answer();

        answer.team       = teamManager.localPlayer.myTeam.teamNr;
        answer.playerName = ParseUser.CurrentUser.Username;
        answer.playerId   = ParseUser.CurrentUser.ObjectId;
        answer.time       = System.DateTime.Now.ToShortTimeString();
        answer.correct    = answerCorrect;
        //questionManager.AddAnswer(answer);

        teamManager.localPlayer.CmdAddAnswer(answer);

        answerButtons.Interactable(false);
    }
コード例 #4
0
 public static String toString(this Question.Answer a)
 {
     return("{ " + "\n"
            + "PId: " + a.playerId + "\n"
            + "PName: " + a.playerName + "\n"
            + "Time: " + a.time + "\n"
            + "AnswerCorrect: " + a.correct + "\n"
            + "team: " + a.team + "\n"
            + "}\n");
 }
コード例 #5
0
 void setOption(Option opt, Question.Answer questionOption)
 {
     opt.isCorrect          = questionOption.isCorrect;
     opt.displayedText.text = questionOption.text;
 }
コード例 #6
0
 public void CmdAddAnswer(Question.Answer answer)
 {
     questionManager.AddAnswer(answer);
 }