Exemplo n.º 1
0
        private void SetChoice(TextBlock textBlock, QuestionChoice choice)
        {
            if (choice == null)
            {
                textBlock.Visibility = Visibility.Hidden;
            }
            else
            {
                textBlock.Inlines.Clear();
                if (!string.IsNullOrEmpty(choice.ImageUrl))
                {
                    textBlock.Inlines.Add(new Run(choice.Text)
                    {
                        BaselineAlignment = BaselineAlignment.Center
                    });
                    textBlock.Inlines.Add(new Image()
                    {
                        Source  = new BitmapImage(new Uri(choice.ImageUrl)),
                        Stretch = Stretch.Uniform
                    });
                }
                else
                {
                    textBlock.Text = choice.Text;
                }

                textBlock.Visibility = Visibility.Visible;
                textBlock.MouseDown += (sender, e) =>
                {
                    Choose?.Invoke(choice);
                };
            }
        }
        public async Task <ActionResult> Update(QuestionChoice newQuestionChoice)
        {
            await Delete(newQuestionChoice.Id);
            await Create(newQuestionChoice);

            return(new HttpOk().ToJson());
        }
Exemplo n.º 3
0
        public QuestionAnswerPage(QuestionChoice choice)
        {
            InitializeComponent();

            if (string.IsNullOrEmpty(choice.ImageUrl))
            {
                Answer.Text = choice.Text;
            }
            else
            {
                Answer.Inlines.Clear();
                Answer.Inlines.Add(new Run(choice.Text)
                {
                    BaselineAlignment = BaselineAlignment.Center
                });
                Answer.Inlines.Add(new Image()
                {
                    Source  = new BitmapImage(new Uri(choice.ImageUrl)),
                    Stretch = Stretch.Uniform
                });
            }

            AnswerSymbol.Text = choice?.Text.Substring(0, 1).ToUpper();
            this.MouseDown   += (sender, e) =>
            {
                Next?.Invoke();
            };
        }
 public async Task <ActionResult> Update(QuestionChoice newQuestionChoice)
 {
     if (!ModelState.IsValid)
     {
         return(new InvalidObjectHttpException().ToJson());
     }
     return(await _questionChoiceService.Update(newQuestionChoice));
 }
        public async Task <ActionResult> Create(QuestionChoice questionChoice)
        {
            await _db.QuestionChoices.AddAsync(questionChoice);

            await _db.SaveChangesAsync();

            return(new HttpOk().ToJson());
        }
        public async Task <ActionResult <Question> > Quiz(long id)
        {
            QuestionChoice questionChoice = (await Get(id)).Value;

            if (questionChoice == null)
            {
                return(new NotFoundHttpException(id).ToJson());
            }
            return(await _db.Questions.FindAsync(questionChoice.QuestionId));
        }
 public void Question_CanHaveOneChoice()
 {
     var question = new Question() { QuestionText = "Question Text", QuestionCategory = "Category" };
     var choice = new Choice() { Label = "label", Value = -1 };
     var questionchoice = new QuestionChoice() { Question = question, Choice = choice, SortOrder = 1 };
     db.Questions.InsertOnSubmit(question);
     db.Choices.InsertOnSubmit(choice);
     db.QuestionChoices.InsertOnSubmit(questionchoice);
     Assert.AreEqual(1, question.QuestionChoices.Count);
 }
        public async Task <ActionResult> Delete(long id)
        {
            QuestionChoice questionChoice = await _db.QuestionChoices.FindAsync(id);

            if (questionChoice == null)
            {
                return(new NotFoundHttpException(id).ToJson());
            }
            _db.QuestionChoices.Remove(questionChoice);
            await _db.SaveChangesAsync();

            return(new HttpOk().ToJson());
        }
Exemplo n.º 9
0
        /// <inheritdoc />
        public override int AskChoice(string question, string[] choices, Mixture defaultValue,
                                      int attempts = 0, string errorMessage = "Value \"{0}\" is invalid")
        {
            var helperQuestion   = GetHelperQuestion();
            var questionInstance = new QuestionChoice(question, choices, defaultValue);

            questionInstance.SetMaxAttempts(attempts);
            questionInstance.SetErrorMessage(errorMessage);

            var expect = helperQuestion.Ask(Input, Output, questionInstance);

            return(Array.FindIndex(choices, (choice) => choice == expect));
        }
Exemplo n.º 10
0
 public QuestionChoicesViewModel(QuestionChoice questionChoice)
 {
     Text  = questionChoice.Text;
     Value = questionChoice.Value;
     ExpectedDateAlwaysShow          = questionChoice.ExpectedDateAlwaysShow;
     MostRecentNonReassignmentAnswer = questionChoice.MostRecentNonReassignmentAnswer;
     if (questionChoice.JustificationKeys != null)
     {
         foreach (var justificationKey in questionChoice.JustificationKeys)
         {
             JustificationKeys.Add(justificationKey);
         }
     }
 }
Exemplo n.º 11
0
    /**
     * Stores the question in to the QuestionChoice tagged in the button that was clicked
     **/
    public void loadQns()
    {
        //Question pop up
        GameObject     currentSelected = EventSystem.current.currentSelectedGameObject;
        QuestionChoice qn = currentSelected.GetComponent <QuestionChoice>();

        questionPopUp.SetActive(true);
        currentQnsNumber = qn.getQnsNumber();
        bannerText.GetComponent <Text>().text = "Qns " + (qn.getQnsNumber() + 1).ToString();
        qnsText.GetComponent <Text>().text    = qn.getQns();
        for (int i = 0; i < qn.getChoices().Count; i++)
        {
            choices[i].gameObject.SetActive(true);
            choices[i].GetComponentInChildren <Text>().text = qn.getChoices()[i].ToString();
        }
    }
Exemplo n.º 12
0
    private void OnNewQuestion(IQuestion question) //*
    {
        _currentChoicesIds = new List <int>();
        List <QuestionChoice> choices = new List <QuestionChoice>();

        foreach (var choice in question.Choices)
        {
            _currentChoicesIds.Add(choice.Id);
            QuestionChoice choiceObj = new QuestionChoice();
            choiceObj.text  = choice.Text;
            choiceObj.worth = ConverterController.Evaluation.GetChoiceCost(choice.Worth);
            choices.Add(choiceObj);
        }
        window.UpdateQuestionChoices(choices);
        window.UpdateQuestionText(question.Text);
        ToShowWindow.RaiseEvent(window);
    }
Exemplo n.º 13
0
    /**
     * Stores the question in to the QuestionChoice tagged in the button that was clicked
     * @param btn button that was clicked
     **/
    public void LoadQns(GameObject btn)
    {
        //Question pop up
        currentSelected = btn;
        QuestionChoice qn = btn.GetComponent <QuestionChoice>();

        Debug.Log(btn.GetComponent <QuestionChoice>().getQns());
        questionPopUp.SetActive(true);
        //currentQnsNumber = qn.getQnsNumber();
        //bannerText.GetComponent<Text>().text = "Qns " + (qn.getQnsNumber() + 1).ToString();
        qnsText.GetComponent <Text>().text = qn.getQns();
        for (int i = 0; i < qn.getChoices().Count; i++)
        {
            choices[i].gameObject.SetActive(true);
            choices[i].GetComponentInChildren <Text>().text = qn.getChoices()[i].ToString();
        }
    }
Exemplo n.º 14
0
        public async Task <IActionResult> AddQuestion(IFormCollection fc)
        {
            var userid = HttpContext.Session.GetInt32("userid") ?? 1;
            var date   = DateTime.Now;
            var host   = HttpContext.Connection.RemoteIpAddress.ToString();

            var question = new Question();

            Method.CrtFill(question, userid, date, host);

            question.Text        = fc["Text"].ToString();
            question.Description = fc["Description"].ToString();
            question.Type        = "select";
            question.Active      = true;
            var counter = Convert.ToInt32(fc["counter"]);
            var correct = Convert.ToInt32(fc["isCorrect"]);
            ICollection <QuestionChoice> clist = new List <QuestionChoice>();

            for (int i = 0; i <= counter; i++)
            {
                var choice = new QuestionChoice()
                {
                    Row  = Convert.ToInt32(fc["row_" + i]),
                    Text = fc["text_" + i].ToString(),
                };
                Method.CrtFill(choice, userid, date, host);
                if (i == correct)
                {
                    choice.IsCorrect = true;
                }
                else
                {
                    choice.IsCorrect = false;
                }

                clist.Add(choice);
            }
            question.QuestionChoices = clist;

            repo.Add(question);
            await repo.SaveAll();

            return(Ok(question.Id));
        }
Exemplo n.º 15
0
        public void TestSettingQuestion()
        {
            List <QuestionChoice> qnList = new List <QuestionChoice>();
            QuestionChoice        q      = new QuestionChoice();

            q.setQns("What is this test");
            q.addOptionChoice("Answer");
            q.addOptionChoice("Not Answer");
            q.addOptionChoice("Not Answer");
            q.addOptionChoice("Not Answer");
            q.setAnswer(1);
            qnList.Add(q);
            CustomGame cg = new CustomGame();

            cg.qnList = new List <QuestionChoice>();
            cg.qnList = qnList;
            Assert.AreEqual("What is this test", cg.qnList[0].getQns());
            Assert.AreEqual("Answer", cg.qnList[0].getChoices()[0].ToString());
        }
Exemplo n.º 16
0
        public IActionResult AddQuestion(QuestionViewModel questionViewModel)
        {
            Exam exam = examRepository.Get(questionViewModel.ExamId);

            if (ModelState.IsValid)
            {
                Question qusetion = new Question
                {
                    Text = questionViewModel.Text
                };
                questionRepository.Add(qusetion);
                ExamQuestion examQuestion = new ExamQuestion
                {
                    ExamId     = questionViewModel.ExamId,
                    QuestionId = qusetion.Id,
                    Exam       = exam,
                    Question   = qusetion
                };

                for (int i = 0; i < 4; i++)
                {
                    Choice choice = questionViewModel.Choices[i];
                    choiceRepository.Add(choice);

                    QuestionChoice questionChoice = new QuestionChoice
                    {
                        Question   = qusetion,
                        Choice     = choice,
                        ChoiceId   = choice.Id,
                        QuestionId = qusetion.Id,
                    };
                    questionChoiceRepository.Add(questionChoice);
                }

                examQuestionRepository.Add(examQuestion);


                return(RedirectToAction("Index", new { examId = questionViewModel.ExamId }));
            }

            return(View());
        }
Exemplo n.º 17
0
        /// <inheritdoc />
        public override int[] AskChoiceMult(string question, string[] choices, Mixture defaultValue,
                                            int attempts = 0, string errorMessage = "Value \"{0}\" is invalid")
        {
            var helperQuestion   = GetHelperQuestion();
            var questionInstance = new QuestionChoice(question, choices, defaultValue);

            questionInstance.SetMaxAttempts(attempts);
            questionInstance.SetErrorMessage(errorMessage);
            questionInstance.SetMultiselect(true);

            var answer  = helperQuestion.Ask(Input, Output, questionInstance);
            var results = new List <int>();

            foreach (var expect in (string[])answer)
            {
                results.Add(Array.FindIndex(choices, (choice) => choice == expect));
            }

            return(results.ToArray());
        }
Exemplo n.º 18
0
        public void TestQuestionAnswer()
        {
            List <QuestionChoice> qnList = new List <QuestionChoice>();
            QuestionChoice        q      = new QuestionChoice();

            q.setQns("What is this test");
            q.addOptionChoice("Answer");
            q.addOptionChoice("Not Answer");
            q.addOptionChoice("Not Answer");
            q.addOptionChoice("Not Answer");
            q.setAnswer(1);
            qnList.Add(q);
            CustomGame cg = new CustomGame();

            cg.qnList = new List <QuestionChoice>();
            cg.qnList = qnList;
            Assert.AreEqual(true, cg.CheckAns(1));
            Assert.AreEqual(false, cg.CheckAns(2));
            Assert.AreEqual(false, cg.CheckAns(3));
            Assert.AreEqual(false, cg.CheckAns(4));
        }
Exemplo n.º 19
0
    /**
     * Reads from database the questions and choices to deserialize with QuestionChoice class for the custom stage user chose to play
     **/
    IEnumerator ReadDB()
    {
        done = false;
        if (loading != null)
        {
            loading.SetActive(true);
        }

        FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://cz3003-waffles.firebaseio.com/");
        reference = FirebaseDatabase.DefaultInstance.RootReference;


        FirebaseDatabase.DefaultInstance.GetReference("CustomStage/" + CuststageName + "/").GetValueAsync().ContinueWith(task =>
        {
            //reference.GetValueAsync().ContinueWith(task => {
            if (task.IsFaulted)
            {
                // Handle the error...
            }
            else if (task.IsCompleted)
            {
                int countDB = 0;

                DataSnapshot snapshot = task.Result;

                foreach (var questionNumber in snapshot.Children)
                {
                    Debug.LogFormat("Key={0}", questionNumber.Key); //Node at question number

                    noOfCustom = (int)questionNumber.ChildrenCount; //noOfQuestions
                    foreach (var actualQuestionNumber in questionNumber.Children)
                    {
                        countDB           = 0;
                        QuestionChoice qn = new QuestionChoice();

                        Debug.LogFormat("Key={0}", actualQuestionNumber.Key); //question 1,2.....
                        foreach (var value in actualQuestionNumber.Children)
                        {
                            Debug.LogFormat("Value={0}", value.Value.ToString()); //values inside question 1,2
                            if (countDB >= 0 && countDB <= 3)
                            {
                                //optionChoice.Add(value.Value.ToString());
                                qn.addOptionChoice(value.Value.ToString());
                            }
                            else if (countDB == 4)
                            {
                                //correctAnswers.Add(value.Value.ToString());
                                qn.setAnswer(int.Parse(value.Value.ToString()));
                                Debug.Log(value.Value.ToString());
                            }
                            else if (countDB == 5)
                            {
                                //questionName.Add(value.Value.ToString());
                                qn.setQns(value.Value.ToString());
                            }
                            countDB++;
                        }
                        qnList.Add(qn);
                    }
                }

                done = true;

                Debug.Log(countDB);
            }
        });

        yield return(new WaitUntil(() => done == true));

        if (done == true) //reading db should be done by now
        {
            if (loading != null)
            {
                loading.SetActive(false);
            }
            Debug.Log(qnList.Count);
            for (int i = 0; i < qnList.Count; i++)
            {
                Debug.Log("QNS " + i.ToString() + " " + qnList[i].getQns());

                for (int j = 0; j < qnList[i].getChoices().Count; j++)
                {
                    Debug.Log("Choices " + j.ToString() + " " + qnList[i].getChoices()[j].ToString());
                }
            }

            //Create new buttons for all the questions fetched from custom stage database
            for (int i = 0; i < qnList.Count; i++)
            {
                GameObject newButton = Instantiate(questionBtn) as GameObject;
                newButton.GetComponent <Button>().GetComponentInChildren <Text>().text = "Qns " + (i + 1).ToString();
                newButton.gameObject.name = i.ToString();
                newButton.GetComponent <Button>().GetComponent <Image>().sprite = lockedQns;
                newButton.GetComponent <Button>().interactable = false;
                newButton.GetComponent <QuestionChoice>().setOptionChoice(qnList[i].getChoices());
                qnList[i].setQnsNumber(i);
                newButton.GetComponent <QuestionChoice>().setQnsNumber(i); //qns start from 0
                newButton.GetComponent <QuestionChoice>().setAnswer(qnList[i].getAnswer());
                newButton.GetComponent <QuestionChoice>().setQns(qnList[i].getQns());
                newButton.gameObject.transform.SetParent(panel.gameObject.transform);
                newButton.gameObject.transform.localScale = new Vector3(1, 1, 1);
                initializedButtons.Add(newButton);
            }
            initializedButtons[currentQnsNumber].GetComponent <Button>().GetComponent <Image>().sprite = normalQns;
            initializedButtons[currentQnsNumber].GetComponent <Button>().interactable = true;
            qnsCounter.GetComponent <Text>().text = ("Question Cleared: " + (qnsCounterT) + "/" + qnList.Count).ToString();
            startTime = Time.time;
        }
    }
Exemplo n.º 20
0
 public void Add(QuestionChoice questionChoice)
 {
     DbSet.Add(questionChoice);
 }
Exemplo n.º 21
0
    /**
     * Fetches from firebase world stage question banks and stores to the different difficulty lists
     **/
    IEnumerator ReadDB()
    {
        done = false;
        if (loading != null)
        {
            loading.SetActive(true);
        }

        FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://cz3003-waffles.firebaseio.com/");
        reference = FirebaseDatabase.DefaultInstance.RootReference;


        FirebaseDatabase.DefaultInstance.GetReference("StageNames/World" + currentWorld + "/Stage" + currentStage + "/Difficulty").GetValueAsync().ContinueWith(task =>
        {
            //reference.GetValueAsync().ContinueWith(task => {
            if (task.IsFaulted)
            {
                // Handle the error...
            }
            else if (task.IsCompleted)
            {
                int countDB = 0;

                DataSnapshot snapshot = task.Result;

                foreach (var questionDifficulty in snapshot.Children)
                {
                    Debug.LogFormat("Count={0}", questionDifficulty.ChildrenCount); //Node at question number
                    int difficulty = int.Parse(questionDifficulty.Key);

                    //noOfCustom = (int)questionDifficulty.ChildrenCount;  //noOfQuestions
                    foreach (var actualQuestion in questionDifficulty.Children)
                    {
                        countDB           = 0;
                        QuestionChoice qn = new QuestionChoice();
                        qn.setDifficulty(difficulty);
                        qn.setQns(actualQuestion.Key);
                        Debug.LogFormat("Key={0}", actualQuestion.Key); //question 1,2.....
                        foreach (var value in actualQuestion.Children)
                        {
                            Debug.LogFormat("Value={0}", value.Value.ToString()); //values inside question 1,2
                            if (countDB >= 0 && countDB <= 3)
                            {
                                //optionChoice.Add(value.Value.ToString());
                                qn.addOptionChoice(value.Value.ToString());
                            }
                            else if (countDB == 4)
                            {
                                //correctAnswers.Add(value.Value.ToString());
                                qn.setAnswer(int.Parse(value.Value.ToString()));
                                Debug.Log(value.Value.ToString());
                            }
                            countDB++;
                        }
                        if (difficulty == 1)
                        {
                            qnDiff1List.Add(qn);
                        }
                        if (difficulty == 2)
                        {
                            qnDiff2List.Add(qn);
                        }
                        if (difficulty == 3)
                        {
                            qnDiff3List.Add(qn);
                        }
                        if (difficulty == 4)
                        {
                            qnDiff4List.Add(qn);
                        }
                        if (difficulty == 5)
                        {
                            qnDiff5List.Add(qn);
                        }
                    }
                }

                done = true;

                Debug.Log(countDB);
            }
        });

        yield return(new WaitUntil(() => done == true));

        if (done == true) //reading db should be done by now
        {
            loading.SetActive(false);
            startTime = Time.time;

            for (int i = 0; i < qnDiff1List.Count; i++)
            {
                Debug.Log("Diff 1 " + qnDiff1List[i].getQns());
            }
            for (int i = 0; i < qnDiff2List.Count; i++)
            {
                Debug.Log("Diff 2 " + qnDiff2List[i].getQns());
            }
        }
    }