QuestionProxy.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using UnityEngine;
  5. public class QuestionProxy : DataProxy
  6. {
  7. public List<QuestionInfo> m_QuestionInfos;
  8. private string m_CurrentTableName;
  9. /// <summary>
  10. /// 根据步骤ID获取
  11. /// </summary>
  12. /// <param name="stepId"></param>
  13. /// <returns></returns>
  14. public QuestionInfo GetQuestionInfoByStepId(int stepId)
  15. {
  16. return m_QuestionInfos.Find(t => t.StepId == stepId.ToString());
  17. }
  18. /// <summary>
  19. /// 设置题目信息
  20. /// </summary>
  21. public void SetQuestionInfo(QuestionInfo questionInfo)
  22. {
  23. QuestionInfo tmpQuestionInfo = m_QuestionInfos.Find(t => t.StepId == questionInfo.StepId);
  24. if (tmpQuestionInfo == null)
  25. {
  26. m_QuestionInfos.Add(questionInfo);
  27. }
  28. else
  29. {
  30. m_QuestionInfos[m_QuestionInfos.IndexOf(tmpQuestionInfo)] = questionInfo;
  31. }
  32. m_QuestionInfos.Sort((t1,t2) => t1.StepId.CompareTo(t2.StepId));
  33. WriteStepMsgInfoToTable();
  34. ReadStepMsgInfoFromTable(m_CurrentTableName);
  35. }
  36. /// <summary>
  37. /// 从表格读取题库信息
  38. /// </summary>
  39. /// <param name="tableName"></param>
  40. /// <returns></returns>
  41. public List<QuestionInfo> ReadStepMsgInfoFromTable(string tableName)
  42. {
  43. m_CurrentTableName = tableName;
  44. string tmpTableName = tableName + GlobalConfig.excelSuffix;
  45. List<QuestionInfo> tmpQuestionInfos = new List<QuestionInfo>();
  46. string tmpPath = Path.Combine(GlobalConfig.operateTablePath, tmpTableName);
  47. if (!File.Exists(tmpPath))
  48. {
  49. ExcelHelper.WriteInfoToExcel(tmpPath, new List<QuestionInfo>());
  50. }
  51. m_QuestionInfos = ExcelHelper.ReadInfoFromExcel<QuestionInfo>(tmpPath, 1);
  52. return m_QuestionInfos;
  53. }
  54. public void WriteStepMsgInfoToTable()
  55. {
  56. string tmpTableName = m_CurrentTableName + GlobalConfig.excelSuffix;
  57. string tmpPath = Path.Combine(GlobalConfig.operateTablePath, tmpTableName);
  58. ExcelHelper.WriteInfoToExcel(tmpPath, m_QuestionInfos);
  59. }
  60. }
  61. /// <summary>
  62. /// 从表中读取到的数据信息
  63. /// </summary>
  64. public class QuestionInfo
  65. {
  66. /// <summary>
  67. /// 步骤ID
  68. /// </summary>
  69. public string StepId;
  70. /// <summary>
  71. /// 试题类型
  72. /// </summary>
  73. public string QuestionType;
  74. /// <summary>
  75. /// 试题题目
  76. /// </summary>
  77. public string Topic;
  78. /// <summary>
  79. /// 试题选项
  80. /// </summary>
  81. public string Options;
  82. /// <summary>
  83. /// 试题答案
  84. /// </summary>
  85. public string Answer;
  86. }