Exemple #1
0
        /// <summary>
        /// 获取小题列表
        /// </summary>
        /// <returns></returns>
        public string GetQuestionList()
        {
            StringBuilder sb   = new StringBuilder();
            XmlElement    list = XmlHelper.GetXmlElement(paperInfoPath, "PaperInfo/ItemList");

            foreach (XmlNode node in list)
            {
                string QuestionNO      = node.SelectSingleNode("xtdm").InnerText; //小题代码
                string SectionNO       = node.SelectSingleNode("dth").InnerText;  //大题号
                string QuestionTypeNO  = node.SelectSingleNode("xtlx").InnerText;
                string QuestionName    = "";                                      // node.SelectSingleNode("xtdm").InnerText;
                string StandardAnswer  = node.SelectSingleNode("rightKey").InnerText;
                string TxtAnswerPath   = node.SelectSingleNode("xtdm").InnerText;
                string AudioAnswerPath = "";                                      // node.SelectSingleNode("xtdm").InnerText;
                string StandardScore   = node.SelectSingleNode("mf").InnerText;   //满分
                string QuestionMemo    = node.SelectSingleNode("xtms").InnerText; //小题描述
                string CheckNumber     = "";                                      // node.SelectSingleNode("xtdm").InnerText;
                string PageNO          = "";                                      // node.SelectSingleNode("xtdm").InnerText;
                string GlobalIndex     = "";                                      // node.SelectSingleNode("xtdm").InnerText;
                string Index           = node.SelectSingleNode("xth").InnerText;  //小题号
                string MaxFontCount    = "";                                      // node.SelectSingleNode("xth").InnerText;//
                sb.Append("<Question name=\"Question\" id=\"" + Index + "\">");
                sb.Append(string.Format(Question, QuestionNO, SectionNO, QuestionTypeNO, QuestionName, StandardAnswer, TxtAnswerPath, AudioAnswerPath, StandardScore, QuestionMemo, CheckNumber, PageNO, GlobalIndex, Index, MaxFontCount));
                sb.Append("</Question>");
            }
            return(sb.ToString());
        }
Exemple #2
0
        /// <summary>
        /// 获取章节列表
        /// </summary>
        /// <returns></returns>
        public string GetSectionList()
        {
            StringBuilder sb   = new StringBuilder();
            XmlElement    list = XmlHelper.GetXmlElement(paperInfoPath, "PaperInfo/PaperQuesList ");

            foreach (XmlNode node in list)
            {
                string ParentNO        = "0";
                string SectionNO       = node.SelectSingleNode("dth").InnerText;  //大题号
                string SectionName     = node.SelectSingleNode("dtmc").InnerText; //大题/章节名称
                string StandardScore   = node.SelectSingleNode("mf").InnerText;   //满分
                string SectionMemo     = "";
                string SectionSavePath = "";
                string Index           = SectionNO;

                sb.Append("<Section name=\"Section\" id=\"1\">");
                sb.Append(string.Format(Section, ParentNO, SectionNO, SectionName, StandardScore, Index));
                sb.Append("</Section>");
            }
            return(sb.ToString());
        }
Exemple #3
0
        /// <summary>
        /// 展示nets和spoken试卷结构
        /// </summary>
        /// <param name="paperInfo"></param>
        /// <param name="requestData"></param>
        private void ShowPaper(string paperInfoPath)
        {
            string        NetsPaperNO = XmlHelper.Read(paperInfoPath, "PaperInfo/PaperList/PaperData/sjdm", "");//试卷代码
            string        workPath    = txt_work.Text.Trim();
            DirectoryInfo diWork      = new DirectoryInfo(workPath);

            DirectoryInfo[] diList = diWork.GetDirectories();
            bool            flag   = false;

            foreach (DirectoryInfo di in diList)
            {
                FileInfo[] fiList = di.GetFiles();
                foreach (FileInfo fi in fiList)
                {
                    if (fi.Name == "paper.xml")
                    {
                        updateFile = fi;
                        string SpokenPaperNo   = XmlHelper.Read(fi.FullName, "Paper/PaperInfo/PaperNO", "");   //试卷代码
                        string SpokenPaperName = XmlHelper.Read(fi.FullName, "Paper/PaperInfo/PaperName", ""); //试卷代码

                        //nets树结构
                        string   netsPaperName = XmlHelper.Read(paperInfoPath, "PaperInfo/PaperList/PaperData/sjmc", "");//试卷代码
                        TreeNode parentNode    = new TreeNode(netsPaperName);
                        treeView2.Nodes.Clear();
                        treeView2.Nodes.Add(parentNode);
                        parentNode.Nodes.Add(NetsPaperNO);

                        XmlElement  xe  = XmlHelper.GetXmlElement(paperInfoPath, "PaperInfo/PaperQuesList");
                        XmlNodeList xnl = xe.ChildNodes;

                        List <string> sectionList = new List <string>();
                        List <string> list        = new List <string>();

                        foreach (XmlNode xn in xnl)
                        {
                            TreeNode tnode = new TreeNode(xn.SelectSingleNode("dtmc").InnerText + "(" + xn.SelectSingleNode("dth").InnerText + ")");

                            xe  = XmlHelper.GetXmlElement(paperInfoPath, "PaperInfo/ItemList");
                            xnl = xe.ChildNodes;
                            foreach (XmlNode xn1 in xnl)
                            {
                                if (xn1.SelectSingleNode("dth").InnerText == xn.SelectSingleNode("dth").InnerText)
                                {
                                    //剔除掉1-5,6-10这种小题
                                    if (xn1.SelectSingleNode("xtlx").InnerText == "SINGLE" || xn1.SelectSingleNode("xtlx").InnerText == "SPOKEN")
                                    {
                                        TreeNode tnode1 = new TreeNode(xn1.SelectSingleNode("xtdm").InnerText);
                                        tnode.Nodes.Add(tnode1);
                                        list.Add(xn1.SelectSingleNode("xtdm").InnerText);
                                    }
                                }
                            }
                            sectionList.Add(xn.SelectSingleNode("dth").InnerText);
                            parentNode.Nodes.Add(tnode);
                        }
                        treeView2.ExpandAll();
                        nets_dict = new Dictionary <string, object>();
                        nets_dict.Add("paperNo", NetsPaperNO);
                        nets_dict.Add("paperName", netsPaperName);
                        nets_dict.Add("questionList", list);
                        nets_dict.Add("sectionList", sectionList);

                        txt_paperNO.Text = NetsPaperNO;

                        if (NetsPaperNO == SpokenPaperNo)
                        {
                            parentNode = new TreeNode(SpokenPaperName);
                            treeView1.Nodes.Clear();
                            treeView1.Nodes.Add(parentNode);
                            parentNode.Nodes.Add(SpokenPaperNo);
                            //spoken树结构
                            xe          = XmlHelper.GetXmlElement(fi.FullName, "Paper/SectionList");
                            xnl         = xe.ChildNodes;
                            sectionList = new List <string>();
                            list        = new List <string>();
                            foreach (XmlNode xn in xnl)
                            {
                                TreeNode tnode = new TreeNode(xn.SelectSingleNode("SectionName").InnerText + "(" + xn.SelectSingleNode("SectionNO").InnerText + ")");

                                xe  = XmlHelper.GetXmlElement(fi.FullName, "Paper/QuestionList");
                                xnl = xe.ChildNodes;
                                foreach (XmlNode xn1 in xnl)
                                {
                                    if (xn1.SelectSingleNode("SectionNO").InnerText == xn.SelectSingleNode("SectionNO").InnerText)
                                    {
                                        TreeNode tnode1 = new TreeNode(xn1.SelectSingleNode("QuestionNO").InnerText);
                                        tnode.Nodes.Add(tnode1);
                                        list.Add(xn1.SelectSingleNode("QuestionNO").InnerText);
                                    }
                                }
                                sectionList.Add(xn.SelectSingleNode("SectionNO").InnerText);
                                parentNode.Nodes.Add(tnode);
                            }
                            treeView1.ExpandAll();
                            spoken_dict = new Dictionary <string, object>();
                            spoken_dict.Add("paperNo", SpokenPaperNo);
                            spoken_dict.Add("paperName", SpokenPaperName);
                            spoken_dict.Add("questionList", list);
                            spoken_dict.Add("sectionList", sectionList);

                            flag = true;
                            break;
                        }
                    }
                    if (flag)
                    {
                        break;
                    }
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// 解压nets试卷包
        /// </summary>
        /// <param name="filePaper"></param>
        /// <param name="fileCode"></param>
        /// <param name="tempPath"></param>
        private void unZipNetsPaper(FileInfo[] netsPaperFileList)
        {
            string tempPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "netsTemp");

            FileHelper.DeleteFolder(tempPath);
            Directory.CreateDirectory(tempPath);

            foreach (FileInfo f in netsPaperFileList)
            {
                string filePaper = f.FullName;
                string fileCode  = filePaper.Replace(".otp", ".osqm");
                if (f.Extension.Equals(".otp"))
                {
                    //1、复制源文件到临时目录
                    string filePaperTemp = Path.Combine(tempPath, new FileInfo(filePaper).Name);
                    string fileCodeTemp  = Path.Combine(tempPath, new FileInfo(fileCode).Name);
                    FileHelper.FileCopy(filePaper, filePaperTemp, true);
                    FileHelper.FileCopy(fileCode, fileCodeTemp, true);

                    //2、固定密码解密otp,并解压
                    string fileName  = f.Name.Replace(".otp", "");
                    string paperTemp = tempPath + "\\paperTemp\\" + fileName;
                    int    result1   = SecModule.FileVerify(NETSPWD, filePaperTemp);
                    FileCompress.DecompressFile(filePaperTemp, paperTemp, NETSPWD, null);

                    //3、固定密码解密osqm,并解压
                    string codeTemp = tempPath + "\\codeTemp\\" + fileName;
                    int    result2  = SecModule.FileVerify(NETSPWD, fileCodeTemp);
                    FileCompress.DecompressFile(fileCodeTemp, codeTemp, NETSPWD, null);

                    //4、授权码解密试卷包,并解压
                    string     sqmm     = XmlHelper.Read(codeTemp + "\\Codeinfo.xml", "CodeInfo/CodeData/sqmm", "");
                    FileInfo[] fileList = new DirectoryInfo(paperTemp).GetFiles();
                    foreach (FileInfo fi in fileList)
                    {
                        if (fi.Extension.Equals(".zip"))
                        {
                            int a = SecModule.FileVerify(sqmm, fi.FullName);
                            FileCompress.DecompressFile(fi.FullName, paperTemp, NETSPWD, null);
                        }
                    }

                    //5、固定密码解密kjs,并解压
                    string kjsForder = "";
                    fileList = new DirectoryInfo(paperTemp).GetFiles();
                    foreach (FileInfo fi in fileList)
                    {
                        if (fi.Extension.Equals(".kjs"))
                        {
                            int result3 = SecModule.FileVerify(NETSPWD, fi.FullName);
                            kjsForder = paperTemp + "\\" + fi.Name.Replace(".kjs", "");
                            FileCompress.DecompressFile(fi.FullName, kjsForder, NETSPWD, null);

                            //提取nets试卷xml中数据
                            FileInfo[]  filePaperXmlList = new DirectoryInfo(paperTemp).GetFiles("PaperInfo.xml");
                            FileInfo    filePaperXml     = filePaperXmlList[0];
                            XmlElement  xe  = XmlHelper.GetXmlElement(filePaperXml.FullName, "/PaperInfo/PaperList");
                            XmlNodeList xnl = xe.ChildNodes;
                            PaperEntity pe  = new PaperEntity();;
                            foreach (XmlNode xn in xnl)
                            {
                                pe.paperNo = xn.SelectSingleNode("sjdm").InnerText;
                            }

                            XmlElement    xe1   = XmlHelper.GetXmlElement(filePaperXml.FullName, "/PaperInfo/ItemList");
                            XmlNodeList   xnl1  = xe1.ChildNodes;
                            List <string> lists = new List <string>();
                            foreach (XmlNode xn1 in xnl1)
                            {
                                lists.Add(xn1.SelectSingleNode("xtdm").InnerText);
                            }
                            pe.questionNo = lists;

                            listPaperEntity.Add(pe);
                        }
                    }
                }

                //DoPaper(paperTemp + "\\PaperInfo.xml", kjsForder + "\\js\\requestData.json");
            }
        }