Exemplo n.º 1
0
        /// <summary>
        /// 创建所教班级的模型xml
        /// </summary>
        /// <param name="hid"></param>
        /// <param name="xdoc"></param>
        /// <param name="savepath"></param>
        /// <param name="months"></param>
        /// <returns></returns>
        public static string SetAllStuName(int hid, XmlDocument xdoc, string savepath, int weeks, string xmlfile)
        {
            string      result       = "这是默认值:创建失败!";
            XmlNode     root         = xdoc.SelectSingleNode("classmodel");
            XmlNodeList nodeListtest = root.ChildNodes;

            if (nodeListtest[0].Name != "student")
            {
                root = root.SelectSingleNode("students");
            }
            if (root != null)
            {
                XmlNodeList nodeList = root.ChildNodes;
                int         stucount = nodeList.Count;
                if (stucount > 0)
                {
                    BLL.Signin gbll          = new BLL.Signin();
                    DataTable  allclassstu   = gbll.GetQnameQip(hid, weeks);
                    int        allclassCount = allclassstu.Rows.Count;
                    if (allclassCount > 0)
                    {
                        //string teststr = ClassModeSavePath(hid.ToString()) + @"\test" + hid + "all.xml";
                        //allclassstu.WriteXml(teststr);//测试输出
                        BLL.Room  bll       = new BLL.Room();
                        DataTable dtclass   = bll.GetMyGradeClass(hid);
                        int       dtcscount = dtclass.Rows.Count;
                        result = "信息提示:有签到的任教" + dtcscount.ToString() + "个班级共" + allclassstu.Rows.Count.ToString() + "人 |";
                        int right = 0;
                        int wrong = 0;
                        int miss  = 0;
                        for (int i = 0; i < dtcscount; i++)
                        {
                            string   rgrade    = dtclass.Rows[i]["Rgrade"].ToString();
                            string   rclass    = dtclass.Rows[i]["Rclass"].ToString();
                            string   classname = rgrade + "年级" + rclass + "班";
                            DataView dv        = allclassstu.DefaultView;
                            dv.RowFilter = "Qgrade=" + rgrade + " and Qclass=" + rclass;
                            DataTable dt = dv.ToTable();
                            //dt.Columns.Remove("Qgrade");
                            //dt.Columns.Remove("Qclass");//清理掉无用字段
                            //string testclassstr = ClassModeSavePath(hid.ToString()) + @"\test" + rgrade + "_" + rclass +".xml";
                            //dt.WriteXml(testclassstr);//测试输出
                            int thiscount = dt.Rows.Count;
                            if (thiscount > 0)
                            {
                                try
                                {
                                    SetStuName(dt, classname, savepath, xmlfile);                               //创建该班级的模型
                                    right++;
                                    result = result + rgrade + "." + rclass + "(" + thiscount.ToString() + ")"; //生成该班级模型
                                }
                                catch (Exception ex)
                                {
                                    wrong++;
                                    result = result + rgrade + "." + rclass + "(??)";
                                    string msgtype = "班级模型" + rgrade + "." + rclass + "班模型生成出错";
                                    LearnSite.Common.Log.Addlog(msgtype, ex.Message);
                                }
                            }
                            else
                            {
                                miss++;
                                result = result + rgrade + "." + rclass + "(0)";
                            }
                        }
                        result = result + "<br/><br/>创建成功" + right.ToString() + "个班级模型xml文件,失效" + miss.ToString() + "个,出错" + wrong.ToString() + "个。";
                        DelUpXml(xmlfile);//删除上传的xml文件
                    }
                    else
                    {
                        result = "没有在指定时间内签到的班级学生,无法根据签到IP生成相应的班级模型!";
                    }
                }
                else
                {
                    result = "上传的原有班级模型xml文件中学生机为0,无法创建!";
                }
            }
            else
            {
                result = "上传的原有班级模型xml文件中无classmodel根节点!";
            }
            return(result);
        }