/// <summary>
 /// Populates the table with the data from the QuizInstance
 /// </summary>
 public void InitializeRows(QuizInstance quizInstance)
 {
     questionContestantStats.Rows.Add();
     for (int i = 0; i < quizInstance.QuestionInstances.Count; i++)
     {
         DataGridViewRow  row = (DataGridViewRow)questionContestantStats.Rows[0].Clone();
         QuestionInstance questionInstance = quizInstance.QuestionInstances[i];
         row.Cells[0].Value = questionInstance.Header;
         int i2 = 0, i3 = 1;
         foreach (Contestant contestant in quizInstance.Contestants)
         {
             if (questionInstance.WrongAnswers.Count > i2 && questionInstance.WrongAnswers[i2].Id.Equals(contestant.Id))
             {
                 row.Cells[i3].Value = "✕";
                 i2++;
             }
             else if (questionInstance.CorrectAnswer != null && questionInstance.CorrectAnswer.Id.Equals(contestant.Id))
             {
                 row.Cells[i3].Value = "✓";
             }
             else
             {
                 row.Cells[i3].Value = "◯";
             }
             i3++;
         }
         questionContestantStats.Rows.Add(row);
     }
     questionContestantStats.Rows.RemoveAt(0);
 }
 public void submitExamAnswer(QuestionInstance QI, Choice ch)
 {
     Context.QueInsChos.Add(new QueInsCho()
     {
         QueInsId = QI.QueId, ChoId = ch.ChoId
     });
 }
Beispiel #3
0
    protected override void InitPrefabItem(object data)
    {
        content = data as QuestionInstance;
        if (content == null)
        {
            MyDebug.LogYellow("QuestionInstance is null!!");
            return;
        }
        Init();
        questionIndex.text = content.index + ".";
        int           count    = content.instance.Count;
        StringBuilder question = new StringBuilder();

        question.Append(content.instance[0].ToString());
        for (int i = 1; i < count - 2; i++)
        {
            question.Append(content.symbol);
            question.Append(content.instance[i].ToString());
        }
        question.Append("=");
        question.Append(content.instance[count - 1].ToString());
        questionContent.text = question.ToString();
        if (content.instance[count - 2] != content.instance[count - 1])
        {
            questionRightAnswerBg.SetActive(true);
            questionRightAnswer_Text.text = content.instance[count - 2].ToString();
            questionContent.color         = Color.red;
        }
    }
Beispiel #4
0
    private List <QuestionInstance> ConvertToInstanceList(List <List <int> > resultList, string symbol)
    {
        List <QuestionInstance> qInstanceList = new List <QuestionInstance>();
        string count = resultList.Count.ToString();

        for (int i = 0; i < resultList.Count; i++)
        {
            QuestionInstance questionInstance = new QuestionInstance();
            questionInstance.index    = (i + 1).ToString().PadLeft(count.Length, '0');
            questionInstance.symbol   = symbol;
            questionInstance.instance = resultList[i];
            qInstanceList.Add(questionInstance);
        }
        return(qInstanceList);
    }
Beispiel #5
0
    protected override void InitPrefabItem(object data)
    {
        content = data as QuestionInstance;
        if (content == null)
        {
            MyDebug.LogYellow("BluetoothQuestionInstance is null!!");
            return;
        }
        Init();
        questionIndex.text = content.index + ".";
        int           count    = content.instance.Count;
        StringBuilder question = new StringBuilder();

        question.Append(content.instance[0].ToString());
        for (int i = 1; i < count - 3; i++)
        {
            question.Append(content.symbol);
            question.Append(content.instance[i].ToString());
        }
        questionContent.text = question.ToString();

        if (content.instance[count - 1] == 0)
        {
            questionOwnAnswer_Text.text = "";
            questionOwnAnswerPage.color = Color.yellow;
        }
        else
        {
            questionOwnAnswer_Text.text = content.instance[count - 1].ToString();
            questionOwnAnswerPage.color = content.instance[count - 1] == content.instance[count - 2] ? Color.green : Color.red;
        }

        if (content.instance[count - 3] == 0)
        {
            questionOtherAnswer_Text.text = "";
            questionOtherAnswerPage.color = Color.yellow;
        }
        else
        {
            questionOtherAnswer_Text.text = content.instance[count - 3].ToString();
            questionOtherAnswerPage.color = content.instance[count - 3] == content.instance[count - 2] ? Color.green : Color.red;
        }
    }
        /// <summary>
        /// Used in the performance test for QuestionViewModel
        /// </summary>
        /// <param name="contestantId"></param>
        /// <param name="quizInstanceId"></param>
        /// <returns></returns>
        public List <QuestionInstance> GetQuestionInstances(int quizInstanceId, Guid contestantId)
        {
            List <QuestionInstance> questionInstances = new List <QuestionInstance>();

            var command = new SqlCommand();

            command.CommandText = @"SELECT * FROM QuestionInstance
                                    WHERE QuizInstanceId=@QuizInstanceId";
            command.Parameters.AddWithValue("@QuizInstanceId", quizInstanceId);

            QuestionInstance questionInstance = new QuestionInstance();
            DBContestant     dbContestant     = new DBContestant();

            foreach (QuestionInstance obj in repository.MultiRead(command))
            {
                questionInstance.CorrectAnswer = dbContestant.GetContestant(quizInstanceId, questionInstance.QuestionId);
                questionInstance.WrongAnswers  = dbContestant.GetContestants(questionInstance.QuizInstanceId, questionInstance.QuestionId);
                questionInstances.Add(questionInstance);
            }
            return(questionInstances);
        }
        private QuestionViewModel QuestionViewModelBuilder(QuestionInstance instance, Guid contestantId)
        {
            QuestionViewModel model = new QuestionViewModel();

            model.Header     = instance.Header;
            model.QuestionId = instance.QuestionId;
            bool found = false;

            //Guid guid; //A Guid can't be null
            //If the question has been answered, save the guid
            if (instance.CorrectAnswer != null)
            {
                //Is the guid someone else?
                if (!instance.CorrectAnswer.Id.Equals(contestantId))
                {
                    model.SetState(State.LOCKED);
                }
                //or is it this contestant?
                else
                {
                    model.SetState(State.CORRECT);
                }
            }
            //Has this contestant tried this question and answered with a wrong question?
            else if (SearchWrongContestants(contestantId, instance.WrongAnswers))
            {
                model.SetState(State.WRONG);
            }
            //Has the timeout been passed yet?
            else if (instance.TimeOut.Ticks > DateTime.Now.Ticks)
            {
                model.SetState(State.PENDING);
            }
            //If none of all that is the case, the question is open
            else
            {
                model.SetState(State.OPEN);
            }
            return(model);
        }
Beispiel #8
0
    private bool FindWrong(QuestionInstance questionInstance)
    {
        int count = questionInstance.instance.Count;

        return(questionInstance.instance[count - 1] != questionInstance.instance[count - 2]);
    }