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(); }
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); } }