WaiXie_QuestionSystem/Assets/Script/Excel/SaveDataInfo.cs

85 lines
2.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace Script.Excel
{
public class SaveDataInfo
{
public string id;
public string title;
public string subject;
public List<AnswerData> answerDatas = new List<AnswerData>();
public string score;
public string trueCount;
public string falseCount;
public string nullCount;
public string accuracy;
public string time;
public class AnswerData
{
public string title;
public string[] options;
public string[] answers;
public string[] result;
}
}
public class SaveData
{
private Dictionary<int, SaveDataInfo> _saveDataInfos = new Dictionary<int, SaveDataInfo>();
public int Count => _saveDataInfos.Count;
public List<SaveDataInfo> DataInfos => _saveDataInfos.Values.ToList();
public SaveDataInfo AddInfo(int id, string title, string subject)
{
var saveDataInfo = new SaveDataInfo();
saveDataInfo.id = id.ToString();
saveDataInfo.title = title;
saveDataInfo.subject = subject;
_saveDataInfos.Add(id, saveDataInfo);
return saveDataInfo;
}
public void AddAnswer(int id, string title, string[] options, string[] answers)
{
if (_saveDataInfos.TryGetValue(id, out var info))
{
var answerData = new SaveDataInfo.AnswerData();
answerData.title = title;
answerData.options = options;
answerData.answers = answers;
info.answerDatas.Add(answerData);
}
}
public void AddResult(int id, int index, string[] result)
{
if (_saveDataInfos.TryGetValue(id, out var info))
{
info.answerDatas[index].result = result;
}
}
public void SetScoreAndOther(int id, string score, string trueCount, string falseCount, string nullCount, string accuracy)
{
if (_saveDataInfos.TryGetValue(id, out var info))
{
info.score = score;
info.trueCount = trueCount;
info.falseCount = falseCount;
info.nullCount = nullCount;
info.accuracy = accuracy;
}
}
public void SetTime(int id, string time)
{
if (_saveDataInfos.TryGetValue(id, out var info))
{
info.time = time;
}
}
}
}