123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- public class QuestionProxy : DataProxy
- {
- public List<QuestionInfo> m_QuestionInfos;
- private string m_CurrentTableName;
- /// <summary>
- /// 根据步骤ID获取
- /// </summary>
- /// <param name="stepId"></param>
- /// <returns></returns>
- public QuestionInfo GetQuestionInfoByStepId(int stepId)
- {
- return m_QuestionInfos.Find(t => t.StepId == stepId.ToString());
- }
- /// <summary>
- /// 设置题目信息
- /// </summary>
- public void SetQuestionInfo(QuestionInfo questionInfo)
- {
- QuestionInfo tmpQuestionInfo = m_QuestionInfos.Find(t => t.StepId == questionInfo.StepId);
- if (tmpQuestionInfo == null)
- {
- m_QuestionInfos.Add(questionInfo);
- }
- else
- {
- m_QuestionInfos[m_QuestionInfos.IndexOf(tmpQuestionInfo)] = questionInfo;
- }
- m_QuestionInfos.Sort((t1,t2) => t1.StepId.CompareTo(t2.StepId));
- WriteStepMsgInfoToTable();
- ReadStepMsgInfoFromTable(m_CurrentTableName);
- }
- /// <summary>
- /// 从表格读取题库信息
- /// </summary>
- /// <param name="tableName"></param>
- /// <returns></returns>
- public List<QuestionInfo> ReadStepMsgInfoFromTable(string tableName)
- {
- m_CurrentTableName = tableName;
- string tmpTableName = tableName + GlobalConfig.excelSuffix;
- List<QuestionInfo> tmpQuestionInfos = new List<QuestionInfo>();
- string tmpPath = Path.Combine(GlobalConfig.operateTablePath, tmpTableName);
- if (!File.Exists(tmpPath))
- {
- ExcelHelper.WriteInfoToExcel(tmpPath, new List<QuestionInfo>());
- }
- m_QuestionInfos = ExcelHelper.ReadInfoFromExcel<QuestionInfo>(tmpPath, 1);
- return m_QuestionInfos;
- }
- public void WriteStepMsgInfoToTable()
- {
- string tmpTableName = m_CurrentTableName + GlobalConfig.excelSuffix;
- string tmpPath = Path.Combine(GlobalConfig.operateTablePath, tmpTableName);
- ExcelHelper.WriteInfoToExcel(tmpPath, m_QuestionInfos);
- }
- }
- /// <summary>
- /// 从表中读取到的数据信息
- /// </summary>
- public class QuestionInfo
- {
- /// <summary>
- /// 步骤ID
- /// </summary>
- public string StepId;
- /// <summary>
- /// 试题类型
- /// </summary>
- public string QuestionType;
- /// <summary>
- /// 试题题目
- /// </summary>
- public string Topic;
- /// <summary>
- /// 试题选项
- /// </summary>
- public string Options;
- /// <summary>
- /// 试题答案
- /// </summary>
- public string Answer;
- }
|