Пример #1
0
    private void ReadyToAnswer()
    {
        if (!previewMode)
        {
            currentAnswer = new List <PollsConfig.Answer>();
            photoList     = new List <byte[]>();

            foreach (PollsConfig.Question q in PollsConfig.selectedDepartment.questions)
            {
                PollsConfig.Answer a = new PollsConfig.Answer();
                a.limit    = q.limit;
                a.shorttxt = q.shorttext;
                a.longtxt  = "";
                a.id       = q.id;
                a.aid      = "-1";
                currentAnswer.Add(a);
            }
        }
        ClickImg.enabled = true;
        ClickImg.color   = Color.white;
        //ClickImg.DOFade(0.0f, 0.5f).SetLoops(-1);
        LoadImg.enabled = false;
        holdPanel.SetActive(false);
        numQuestion = 0;
        if (!previewMode)
        {
            userGuid = Guid.NewGuid().ToString();
            OpenWebCamera();
            CreateTmpFolder();
        }
        loaded = true;
        StartQuestions();
    }
Пример #2
0
    private void parseJson()
    {
        try
        {
            if (!previewMode)
            {
                if (photoList != null)
                {
                    photoList.Clear();
                }
                currentAnswer = new List <PollsConfig.Answer>();
                photoList     = new List <byte[]>();
            }
            if (!PollsConfig.QuestionMap.ContainsKey(jsonPath))
            {
                var settings = new JsonSerializerSettings {
                    TypeNameHandling = TypeNameHandling.All
                };
                List <PollsConfig.QuestionParser> configs = JsonConvert.DeserializeObject <List <PollsConfig.QuestionParser> >(json, settings);
                List <PollsConfig.Question>       qs      = new List <PollsConfig.Question>();

                foreach (PollsConfig.QuestionParser d in configs)
                {
                    PollsConfig.Question q = new PollsConfig.Question();

                    q.id        = d.id;
                    q.type      = d.type;
                    q.limit     = d.limit;
                    q.question  = d.text;
                    q.shorttext = d.shorttxt;
                    if (d.originalid != null)
                    {
                        q.oid = d.originalid != "" ? Int32.Parse(d.originalid) : 0;
                    }
                    else
                    {
                        q.oid = 0;
                    }
                    q.rev1 = d.rev1;
                    q.rev2 = d.rev2;
                    if (q.rev1 != null && q.rev1 != "")     //判断是跳转还是互斥
                    {
                        if (q.rev2 != null && q.rev2 != "") //跳转模式
                        {
                            try
                            {
                                string[] _params = q.rev1.Split(new char[1] {
                                    ','
                                });
                                string[] _params2 = q.rev2.Split(new char[1] {
                                    ','
                                });
                                for (int i = 0; i < _params.Length; i += 2)
                                {
                                    PollsConfig.QExclude qe = new PollsConfig.QExclude();
                                    qe.idxA  = _params[i];
                                    qe.idxB  = _params2[i];
                                    qe.qidxA = Int32.Parse(_params[i + 1]);
                                    qe.qidxB = Int32.Parse(_params2[i + 1]);
                                    PollsConfig.QExclude qe2 = new PollsConfig.QExclude();
                                    qe2.idxA  = _params2[i];
                                    qe2.idxB  = _params[i];
                                    qe2.qidxA = Int32.Parse(_params2[i + 1]);
                                    qe2.qidxB = Int32.Parse(_params[i + 1]);
                                    if (PollsConfig.QExcludeMap.ContainsKey(qe.idxA))
                                    {
                                        PollsConfig.QExcludeMap[qe.idxA].List.Add(qe);
                                    }
                                    else
                                    {
                                        PollsConfig.QExclude _qe = new PollsConfig.QExclude();
                                        _qe.List.Add(qe);
                                        PollsConfig.QExcludeMap.Add(qe.idxA, _qe);
                                    }
                                    if (PollsConfig.QExcludeMap.ContainsKey(qe.idxB))
                                    {
                                        PollsConfig.QExcludeMap[qe.idxB].List.Add(qe2);
                                    }
                                    else
                                    {
                                        PollsConfig.QExclude _qe = new PollsConfig.QExclude();
                                        _qe.List.Add(qe2);
                                        PollsConfig.QExcludeMap.Add(qe.idxB, _qe);
                                    }
                                }
                            }
                            catch
                            {
                                Toast.ShowToast("解析跳转题目失败, 请检查题库");
                            }
                        }
                    }
                    q.indeices[0] = d.index1;
                    q.indeices[1] = d.index2;
                    q.indeices[2] = d.index3;
                    q.indeices[3] = d.index4;
                    q.indeices[4] = d.index5;
                    q.answers[0]  = d.answer1;
                    q.answers[1]  = d.answer2;
                    q.answers[2]  = d.answer3;
                    q.answers[3]  = d.answer4;
                    q.answers[4]  = d.answer5;
                    q.answers[5]  = d.answer6;
                    q.answers[6]  = d.answer7;
                    q.answers[7]  = d.answer8;
                    q.answers[8]  = d.answer9;
                    q.answers[9]  = d.answer10;
                    q.answers[10] = d.answer11;
                    q.answers[11] = d.answer12;
                    q.answers[12] = d.answer13;
                    q.answers[13] = d.answer14;
                    q.answers[14] = d.answer15;
                    q.answers[15] = d.answer16;
                    q.answers[16] = d.answer17;
                    q.answers[17] = d.answer18;
                    q.answers[18] = d.answer19;
                    q.answers[19] = d.answer20;
                    q.icons[0]    = d.icon1;
                    q.icons[1]    = d.icon2;
                    q.icons[2]    = d.icon3;
                    q.icons[3]    = d.icon4;
                    q.icons[4]    = d.icon5;
                    q.icons[5]    = d.icon6;
                    q.icons[6]    = d.icon7;
                    q.icons[7]    = d.icon8;
                    q.icons[8]    = d.icon9;
                    q.icons[9]    = d.icon10;
                    q.icons[10]   = d.icon11;
                    q.icons[11]   = d.icon12;
                    qs.Add(q);
                    if (!previewMode)
                    {
                        PollsConfig.Answer a = new PollsConfig.Answer();
                        a.limit    = q.limit;
                        a.shorttxt = q.shorttext;
                        a.longtxt  = "";
                        currentAnswer.Add(a);
                    }
                }

                PollsConfig.QuestionMap.Add(jsonPath, qs);
            }
            else
            {
                if (!previewMode)
                {
                    List <PollsConfig.Question> qs = PollsConfig.QuestionMap[PollsConfig.selectedDepartment.questionID];
                    foreach (PollsConfig.Question q in qs)
                    {
                        PollsConfig.Answer a = new PollsConfig.Answer();
                        a.limit    = q.limit;
                        a.shorttxt = q.shorttext;
                        a.longtxt  = "";
                        currentAnswer.Add(a);
                    }
                }
            }
            holdPanel.SetActive(false);
            numQuestion = 0;
            if (!previewMode)
            {
                userGuid = Guid.NewGuid().ToString();
                OpenWebCamera();
                CreateTmpFolder();
            }
            StartQuestions();
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message + "\n" + e.StackTrace);
        }
    }