/// <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();
    }
Example #2
0
 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);
        }
    }
Example #7
0
    /// <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();
                }
            });
        }
    }