/// <summary> /// 加载CELST模块 /// </summary> private void LoadCELST() { // CELSTTempPaper tempPaper = preData.dataMemory; memoryData = preData.dataMemory; LuoHaoExamPaper lhep = preData.dataPaper; string file = File.ReadAllText(memoryData.dataPath); celstTempPaper = JsonUtility.FromJson <CELSTTempPaper>(file); if (paperCheakerCELSTACtrl.InitA( lhep.paper.path + "/" + lhep.paper.parta_video_name, celstTempPaper.partA, lhep.paper.parta_text))//初始化A { cheakingBehaviors.Add(paperCheakerCELSTACtrl); } if (paperCheakerCELSTBCtrl.InitB(lhep.paper.partb_keyword_question, celstTempPaper.partBA, lhep.paper.partb_keyword_anser, celstTempPaper.partBB )) { cheakingBehaviors.Add(paperCheakerCELSTBCtrl); } if (paperCheakerCELSTCCtrl.InitC(lhep.paper.partc_keyword_story, celstTempPaper.partC)) { cheakingBehaviors.Add(paperCheakerCELSTCCtrl); } cheakingBehaviors.Add(paperCheakerCELSTFinish);//完成界面 //Forward(); InitGlobalNav(); }
public void CloseWindows() { reportText.text = ""; ctrlPanel.SetActive(false); tempObject = null; thisExamPaper = null; tempObjectID = -1; }
/// <summary> /// 创建基文件 /// </summary> /// <param name="projectName"></param> /// <param name="lhep"></param> public static void CreateBaseFile(string projectName, LuoHaoExamPaper lhep) { string path = filePath + projectName; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } File.WriteAllText(path + "/PaperInfo.lhep", JsonUtility.ToJson(lhep), System.Text.Encoding.UTF8); }
private void PutContent() { for (int i = 0; i < content.childCount; i++) { Destroy(content.GetChild(i).gameObject); } PaperManager.GetFileList();//取得文件列表 List <int> allDownloadedID = PaperManager.GetAllDownloadID(); for (int i = allPaper.data.Count - 1; i >= 0; i--) { ClassPaper cp = allPaper.data[i]; GameObject gm = Instantiate(buttonPerfab, content); ExamItemCtrl eic = gm.GetComponentInChildren <ExamItemCtrl>(); string pj = cp.SoeAllow ? "<Color=Green>支持机器评卷</Color>" : "<Color=Red>不支持机器评卷</Color>"; //Debug.Log(cp.SoeAllow); eic.textItem.text = string.Format( "{0}\n<Color=Red>{1}<Color=Grey>_</Color>{2}</Color>", cp.name, cp.type, pj ); if (allDownloadedID.Contains(cp.id)) { LuoHaoExamPaper lhep = PaperManager.allDownloadedPaperFile[allPaper.data[i].id]; eic.isDownloaded = true; eic.classPaper = lhep.paper; eic.textItem.text += "\n<Color=Green>已下载</Color> <Color=Orange>大小:" + lhep.size + "</Color>\n<Color=Grey>时间:" + lhep.time + "</Color>"; eic.downloadBtnText.text = "删除"; eic.filePath = PaperManager.allDownloadedPath[lhep.id]; } else { eic.isDownloaded = false; eic.classPaper = allPaper.data[i]; eic.textItem.text += "\n<Color=Orange>未下载</Color>"; eic.downloadBtnText.text = "下载"; } } }
/// <summary> /// 获取文件列表 /// </summary> public static void GetFileList() { allDownloaded.Clear(); allDownloadedPath.Clear(); allDownloadedPaperFile.Clear(); if (Directory.Exists(filePath)) { string nfp = filePath.Substring(0, filePath.Length - 1); DirectoryInfo directoryInfo = new DirectoryInfo(nfp); FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories); for (int i = 0; i < fileInfos.Length; i++) { FileInfo fi = fileInfos[i]; // Debug.Log(fi.Extension); if (fi.Extension != ".lhep") { continue; } string text = File.ReadAllText(fi.FullName, System.Text.Encoding.UTF8); try { LuoHaoExamPaper lhep = JsonUtility.FromJson <LuoHaoExamPaper>(text); allDownloaded.Add(new KeyValuePair <string, LuoHaoExamPaper>(fi.Directory.FullName, lhep)); allDownloadedPath.Add(lhep.id, fi.Directory.FullName); //Debug.Log(fi.Directory.FullName); allDownloadedPaperFile.Add(lhep.id, lhep); } catch { Debug.LogError("文件" + fi.FullName + "读取错误!"); } } } }
IEnumerator FileDownloadManager() { allAudiosFiles.Clear(); processCount = 0; tempSize = 0; string basePath = GetPermisson.GetServerAddress + "/Paper/PerperFiles/" + apaper.data.path; string[] strs = apaper.data.partb_audio_anser.Split('/'); string[] strs1 = apaper.data.partb_audio_ask.Split('/'); for (int i = 0; i < strs.Length; i++) { string str = strs[i].Trim(); // Debug.Log(str); if (!string.IsNullOrEmpty(str)) { allAudiosFiles.Add(new KeyValuePair <string, string>(basePath + str, str)); } } for (int i = 0; i < strs1.Length; i++) { string str = strs1[i].Trim(); if (!string.IsNullOrEmpty(str)) { allAudiosFiles.Add(new KeyValuePair <string, string>(basePath + str, str)); } } if (!string.IsNullOrEmpty(apaper.data.partc_audio_name.Trim())) { allAudiosFiles.Add(new KeyValuePair <string, string>(basePath + apaper.data.partc_audio_name.Trim(), apaper.data.partc_audio_name.Trim())); } textLog.text += "\n开始下载关键文件..."; processing = false; bool ok = false; while (true) { if (processing) { yield return(null); } else { switch (processCount) { case 0: if (string.IsNullOrEmpty(apaper.data.parta_video_name.Trim())) { processCount += 1; } else { StartCoroutine(DownloadVideo( basePath + apaper.data.parta_video_name, apaper.data.parta_video_name, delegate() { processing = false; processCount += 1; })); } break; case 1: if (string.IsNullOrEmpty(apaper.data.partb_video_name.Trim())) { processCount += 1; } else { StartCoroutine(DownloadVideo( basePath + apaper.data.partb_video_name, apaper.data.partb_video_name, delegate() { processing = false; processCount += 1; })); } break; case 2: if (allAudiosFiles.Count == 0) { /*创建文件*/ textLog.text += "\n创建基础文件..."; LuoHaoExamPaper lhep = new LuoHaoExamPaper() { id = apaper.data.id, time = System.DateTime.Now.ToString(), paper = apaper.data, size = GetFileSize(tempSize) }; PaperManager.CreateBaseFile(apaper.data.id.ToString() + "EP", lhep); textLog.text += "\n文件写入成功!"; textLog.text += "\n试卷已就绪!"; textInfo.text = "试卷下载完毕!祝您答题愉快!"; ShowCloseUI(); ok = true; } else { StartCoroutine(DownloadAudio(allAudiosFiles[0].Key, allAudiosFiles[0].Value, delegate() { processing = false; allAudiosFiles.RemoveAt(0); })); } break; } } if (ok) { break; } yield return(null); } }
/// <summary> /// 读取 /// </summary> /// <param name="miic"></param> public void OpenWindowsToRead(MemoryInfoItemCtrl miic) { try { ctrlPanel.SetActive(true); // reportText.text = "正在加载报告..."; reportText.text = ""; tempObject = miic.common; tempObjectID = miic.memoryID; switch (miic.common.type) { case UserMemoryList.MemoryType.GD_CELST: string file = File.ReadAllText(miic.common.dataPath); CELSTTempPaper tempPaper = JsonUtility.FromJson <CELSTTempPaper>(file); LuoHaoExamPaper lhep = PaperManager.allDownloadedPaperFile[tempPaper.id]; lhep.paper.path = PaperManager.allDownloadedPath[tempPaper.id]; thisExamPaper = lhep; int totalGrade = 0; int maxGrade = 0; reportText.text += "#" + lhep.paper.id + "#" + lhep.paper.name + "-" + lhep.paper.type + "\n";//头部信息 if (!string.IsNullOrEmpty(tempPaper.partA)) { reportText.text += GetGradeDescript("PartA模仿朗读", tempPaper.gradeA) + "\n"; if (tempPaper.gradeA != -1) { totalGrade += tempPaper.gradeA; } maxGrade += 20; } string[] audioBA = tempPaper.partBA.Split('|'); for (int i = 0; i < tempPaper.gradeBA.Length; i++) { if (audioBA.Length > i && !string.IsNullOrEmpty(audioBA[i])) { reportText.text += GetGradeDescript("PartB三问第" + (i + 1).ToString() + "题", tempPaper.gradeBA[i]) + "\n"; if (tempPaper.gradeBA[i] != -1) { totalGrade += tempPaper.gradeBA[i]; } maxGrade += 2; } } string[] audioBB = tempPaper.partBB.Split('|'); for (int i = 0; i < tempPaper.gradeBB.Length; i++) { if (audioBB.Length > i && !string.IsNullOrEmpty(audioBB[i])) { reportText.text += GetGradeDescript("PartB五答第" + (i + 1).ToString() + "题", tempPaper.gradeBB[i]) + "\n"; if (tempPaper.gradeBB[i] != -1) { totalGrade += tempPaper.gradeBB[i]; } maxGrade += 2; } } if (!string.IsNullOrEmpty(tempPaper.partC)) { reportText.text += GetGradeDescript("PartC故事复述", tempPaper.gradeC) + "\n"; if (tempPaper.gradeC != -1) { totalGrade += tempPaper.gradeC; } maxGrade += 24; } reportText.text += "总分(左所得/右满分):" + totalGrade + " / " + maxGrade; break; case UserMemoryList.MemoryType.CETB4B6: GlobalUIManager.guim.CreateNewDialogBox("Sorry!该模式还在开发中!"); break; default: GlobalUIManager.guim.CreateNewSelectBox("读取本地内存记录时出现错误!是否删除?", delegate(bool ok) { if (ok) { DeleteObj(); } }); break; } reportText.text += ""; } catch { // CloseWindows(); GlobalUIManager.guim.CreateNewSelectBox("读取本地内存记录失败!可能是由于试卷已被删除导致记录丢失!是否删除?", delegate(bool ok) { if (ok) { DeleteObj(); } else { CloseWindows(); } }); } }