예제 #1
0
        protected void SaveChoose()
        {
            string strId = Request.QueryString.Get("id");

            string strEndId = ViewState["ChooseId"].ToString();


            if (strEndId == "")
            {
                strEndId = "0";
            }
            else
            {
                RandomExamBLL             objBll = new RandomExamBLL();
                RailExam.Model.RandomExam random = objBll.GetExam(int.Parse(strId));

                if (random.RandomExamModularTypeID > 1)
                {
                    OracleAccess db     = new OracleAccess();
                    string       strSql = "select * from Random_Exam_Modular_Type where Random_Exam_Modular_Type_ID=" +
                                          random.RandomExamModularTypeID;
                    DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0];

                    strSql = "select * from Random_Exam_Modular_Type where Level_Num=" + (Convert.ToInt32(dr["Level_NUM"]) - 1);
                    DataRow drPre = db.RunSqlDataSet(strSql).Tables[0].Rows[0];

                    strSql = " select a.* "
                             + "from Random_Exam_Result a "
                             + " inner join Random_Exam b on a.Random_Exam_ID=b.Random_Exam_ID "
                             + " left join Random_Exam_Modular_Type c on b.Random_Exam_Modular_Type_ID=c.Random_Exam_Modular_Type_ID "
                             + " where c.Level_Num=" + (Convert.ToInt32(dr["Level_NUM"]) - 1);
                    DataSet ds = db.RunSqlDataSet(strSql);

                    strSql = "select * from Employee where Employee_ID in (" + strEndId + ")";
                    DataSet dsEmp = db.RunSqlDataSet(strSql);

                    string[] str = strEndId.Split(',');

                    string strErrorMessage = string.Empty;
                    for (int i = 0; i < str.Length; i++)
                    {
                        DataRow[] drs = ds.Tables[0].Select("EXAMINEE_ID=" + str[i]);

                        if (drs.Length == 0)
                        {
                            DataRow[] drsEmp = dsEmp.Tables[0].Select("Employee_ID=" + str[i]);

                            strErrorMessage = "所选考生【" + drsEmp[0]["Employee_Name"] + "】未能通过【" +
                                              drPre["Random_Exam_Modular_Type_Name"] + "】考试,不能参加【" +
                                              dr["Random_Exam_Modular_Type_Name"] + "】考试!";
                            break;
                        }
                    }

                    if (!string.IsNullOrEmpty(strErrorMessage))
                    {
                        SessionSet.PageMessage = strErrorMessage;
                        return;
                    }
                }
            }

            if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "0")
            {
                RandomExamArrangeBLL      examArrangeBLL = new RandomExamArrangeBLL();
                IList <RandomExamArrange> objList        = examArrangeBLL.GetRandomExamArranges(int.Parse(strId));

                if (objList.Count == 0)
                {
                    RandomExamArrange examArrange = new RandomExamArrange();
                    examArrange.RandomExamId = int.Parse(strId);
                    examArrange.UserIds      = strEndId;
                    examArrange.Memo         = "";
                    if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType")) && !PrjPub.IsServerCenter)
                    {
                        examArrangeBLL.AddRandomExamArrangeToServer(examArrange);
                    }
                    else
                    {
                        examArrangeBLL.AddRandomExamArrange(examArrange);
                    }
                    ViewState["UpdateMode"] = 1;

                    if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType")))
                    {
                        Response.Write("<script>alert('添加成功!');window.opener.form1.Refresh.value='true';window.opener.form1.submit();window.close();</script>");
                    }
                    else
                    {
                        string       strSql = "";
                        OracleAccess db     = new OracleAccess();
                        strSql = "update Random_Exam set Is_All_Arrange = 0 where Random_Exam_ID=" + strId;
                        db.ExecuteNonQuery(strSql);

                        SessionSet.PageMessage = "添加成功!";
                        return;
                    }
                }
                else
                {
                    ViewState["UpdateMode"] = "1";
                }
            }

            if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "1")
            {
                RandomExamArrangeBLL      examArrangeBLL = new RandomExamArrangeBLL();
                IList <RandomExamArrange> objList        = examArrangeBLL.GetRandomExamArranges(int.Parse(strId));

                string strNew = objList[0].UserIds;

                string[] str = strEndId.Split(',');

                for (int i = 0; i < str.Length; i++)
                {
                    if (("," + strNew + ",").IndexOf("," + str[i] + ",") < 0)
                    {
                        strNew += strNew == string.Empty ? str[i] : "," + str[i];
                    }
                }

                if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType")))
                {
                    //examArrangeBLL.UpdateRandomExamArrangeToServer(int.Parse(strId), strAdd);
                    string strAddIds = string.Empty;

                    for (int i = 0; i < str.Length; i++)
                    {
                        if (("," + objList[0].UserIds + ",").IndexOf("," + str[i] + ",") < 0)
                        {
                            strAddIds += strAddIds == string.Empty ? str[i] : "," + str[i];
                        }
                    }

                    OracleAccess db = new OracleAccess();

                    OracleAccess dbCenter = new OracleAccess(System.Configuration.ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString);
                    XmlDocument  doc      = new XmlDocument();
                    //Request.PhysicalApplicationPath取得config文件路径
                    doc.Load(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "web.config"));
                    XmlNode node  = doc.SelectSingleNode("configuration/dataConfiguration/@defaultDatabase");
                    string  value = node.Value;
                    if (value == "Oracle")
                    {
                        OracleParameter para1 = new OracleParameter("p_User_Ids", OracleType.Clob);
                        OracleParameter para2 = new OracleParameter("p_random_Exam_ID", OracleType.Number);
                        para2.Value = int.Parse(strId);
                        IDataParameter[] paras = new IDataParameter[] { para1, para2 };
                        examArrangeBLL.RunUpdateProcedure(true, "USP_random_Exam_Arrange_U", paras, System.Text.Encoding.Unicode.GetBytes(strEndId));
                    }

                    string strSql = "select a.* from Random_Exam_Arrange_Detail a "
                                    + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                                    + " inner join Computer_Server c on c.Computer_server_ID=b.Computer_Server_ID"
                                    + " where c.Computer_Server_No='" + PrjPub.ServerNo + "' "
                                    + " and Random_Exam_ID=" + strId;
                    DataSet ds = db.RunSqlDataSet(strSql);

                    strSql = "update Random_Exam_Arrange_Detail "
                             + "set User_ids = User_ids || '," + strAddIds + "' "
                             + "where   Random_Exam_Arrange_Detail_ID =" + ds.Tables[0].Rows[0]["Random_Exam_Arrange_Detail_ID"];
                    dbCenter.ExecuteNonQuery(strSql);

                    if (!PrjPub.IsServerCenter)
                    {
                        examArrangeBLL.RefreshRandomExamArrange();
                    }
                }
                else
                {
                    examArrangeBLL.UpdateRandomExamArrange(int.Parse(strId), strNew);
                }

                if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType")))
                {
                    //SessionSet.PageMessage = "添加成功!";
                    Response.Write("<script>alert('添加成功!');window.opener.form1.Refresh.value='true';window.opener.form1.submit();window.close();</script>");
                }
                else
                {
                    string       strSql = "";
                    OracleAccess db     = new OracleAccess();
                    strSql = "update Random_Exam set Is_All_Arrange = 0 where Random_Exam_ID=" + strId;
                    db.ExecuteNonQuery(strSql);

                    SessionSet.PageMessage = "添加成功!";
                    return;
                }
            }
        }