private void buttonX1_Click(object sender, EventArgs e) { //FISCA.Authentication.DSAServices.p Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect("dev.jh_kh", "ischool.kh.central_office", Passport); }
private SchoolClassRecord NowConnSchool(School school) { try { SchoolClassRecord scr = new SchoolClassRecord(); scr.school = school; //取得局端登入後Greening發的Passport,並登入指定的Contract Connection con = new Connection(); con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response1 = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response1.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(school.DSNS, "ischool.kh.central_office", Passport); //取得學校無班導師清單 Envelope Response2 = conSchool.SendRequest("_.GetClassTeacherStatus", new Envelope()); XElement elmResponse1 = XElement.Load(new StringReader(Response2.Body.XmlString)); //整理日期資料 foreach (XElement elmClub in elmResponse1.Elements("ClassRecord")) { OccurClass classRecord = new OccurClass(elmClub); scr.classList.Add(classRecord); } return(scr); } catch (Exception ex) { if (ex.Message == "Can't find service:GetClassTeacherStatus") { MsgBox.Show("發生錯誤:\n" + school.Title + " - " + " 校端未安裝UDM(GetClassTeacherStatus)"); } else { MsgBox.Show("發生錯誤:\n" + school.Title + " - " + ex.Message); } //發生錯誤 } return(null); }
private void buttonX1_Click(object sender, EventArgs e) { //FISCA.Authentication.DSAServices.p Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect("dev.jh_kh", "ischool.kh.central_office", Passport); }
public void Update(string action) { try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(ClassInfo.School.DSNS, "ischool.kh.central_office", Passport); //依據功能不同呼叫不同service, //var xml = new XmlHelper("<Request/>"); //for(var i = 0;i<10;i++) //{ // var stud = new XmlHelper(xml.AddElement("Request", "Student")); // stud.AddElement("Name").InnerText = i.ToString(); // stud.AddElement("ID", i.ToString()); //} string ClinetInfo = @" <ClientInfo> <HostName></HostName> <NetworkAdapterList> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress/> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> </NetworkAdapterList> </ClientInfo> "; if (action == "核准鎖班") { var xml = new XmlHelper("<Request/>"); xml.AddElement("ApplingStatus").InnerText = ""; xml.AddElement("ClassID").InnerText = this.ClassInfo.ClassID; xml.AddElement("DistrictComment").InnerText = this.txtDistrictComment.Text; xml.AddElement("IsLock").InnerText = "true"; xml.AddElement("Message").InnerText = "局端核准鎖班"; xml.AddElement("ClientInfo").InnerText = ClinetInfo; Response = conSchool.SendRequest("_.ApproveAndLock", new Envelope(xml)); } else if (action == "退回鎖班申請") { var xml = new XmlHelper("<Request/>"); xml.AddElement("ApplingStatus").InnerText = ApplyStatus.鎖班申請退回_鎖班數超過二分之一.ToString(); xml.AddElement("ClassID").InnerText = this.ClassInfo.ClassID; xml.AddElement("DistrictComment").InnerText = this.txtDistrictComment.Text; xml.AddElement("IsLock").InnerText = "false"; xml.AddElement("Message").InnerText = "退回鎖班申請"; xml.AddElement("ClientInfo").InnerText = ClinetInfo; Response = conSchool.SendRequest("_.ApproveAndLock", new Envelope(xml)); } DataTable dt = DataHelper.convertXmlToDataTable(Response.Body.XmlString); StringBuilder sb = new StringBuilder(); sb.AppendLine($"日期時間「{DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")}」學校「{this.ClassInfo.School.Title}」,班級「{this.ClassInfo.ClassName}」 動作「{action}」備註「{ this.txtDistrictComment.Text}」"); ApplicationLog.Log("校端鎖班申請審核", action, "", sb.ToString()); MsgBox.Show("儲存成功!"); } catch (Exception ex) { MsgBox.Show($"錯誤訊息:{ex.Message} \r\n 堆疊:{ex.StackTrace}"); } }
private void buttonX1_Click(object sender, EventArgs e) { string SelectedDSNS = "" + cmbSchool.SelectedValue; string School = (cmbSchool.SelectedItem as School).Title; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(SelectedDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudentCount", new Envelope()); //<Class> // <ClassName>101</ClassName> // <StudentCount>25</StudentCount> // <Lock /> // <Comment /> // <NumberReduceSum /> // <ClassStudentCount>25</ClassStudentCount> //</Class> //班級名稱、實際人數、編班人數、編班順位、編班鎖定、鎖定備註 XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); grdClassOrder.Rows.Clear(); List <ClassOrder> ClassOrders = new List <ClassOrder>(); foreach (XElement elmClass in elmResponse.Elements("Class")) { ClassOrder vClassOrder = new ClassOrder(); ClassOrders.Add(vClassOrder); string ClassName = elmClass.ElementText("ClassName"); string StudentCount = elmClass.ElementText("StudentCount"); string ClassStudentCount = elmClass.ElementText("ClassStudentCount"); string NumberReduceSum = elmClass.ElementText("NumberReduceSum"); if (!string.IsNullOrWhiteSpace(NumberReduceSum)) { ClassStudentCount = ClassStudentCount + "(" + StudentCount + "+" + NumberReduceSum + ")"; } string NumberReduceCount = elmClass.ElementText("NumberReduceCount"); string Lock = elmClass.ElementText("Lock"); string Comment = elmClass.ElementText("Comment"); string ClassOrder = string.Empty; vClassOrder.ClassName = ClassName; vClassOrder.StudentCount = StudentCount; vClassOrder.ClassStudentCount = ClassStudentCount; vClassOrder.NumberReduceSum = NumberReduceSum; vClassOrder.NumberReduceCount = NumberReduceCount; vClassOrder.Lock = Lock; vClassOrder.Comment = Comment; vClassOrder.ClassOrderNumber = ClassOrder; vClassOrder.ClassStudentCountValue = StudentCount.GetInt() + NumberReduceSum.GetInt(); } ClassOrders.CalculateClassOrder(); foreach (ClassOrder vClassOrder in ClassOrders) { grdClassOrder.Rows.Add( School, vClassOrder.ClassName, vClassOrder.StudentCount, vClassOrder.ClassStudentCount, vClassOrder.NumberReduceCount, vClassOrder.ClassOrderNumber, vClassOrder.Lock, vClassOrder.Comment); } } catch (Exception ve) { MessageBox.Show(ve.Message); } }
void _bgWorker_DoWork(object sender, DoWorkEventArgs e) { int cc = 5; _bgWorker.ReportProgress(1); // 取得學校 UDT 並加入 Dict _SchoolClassTypeStudentCountList.Clear(); _SchoolClassTypeCountDict.Clear(); Dictionary <string, string> SelectSchoolDict = new Dictionary <string, string>(); foreach (string key in _SchoolDict.Keys) { if (_SelectSchoolList.Contains(key)) { SelectSchoolDict.Add(key, _SchoolDict[key]); } } _bgWorker.ReportProgress(5); foreach (string ScTitle in SelectSchoolDict.Keys) { string ScDSNS = SelectSchoolDict[ScTitle]; //string ScDSNS = "test.kh.edu.tw"; //開發測試使用之DSNS try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(ScDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudentCount", new Envelope()); XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); foreach (XElement elmClass in elmResponse.Elements("Class")) { string ClassName = elmClass.ElementText("ClassName"); //// 班級人數 //string StudentCount = elmClass.ElementText("StudentCount"); // 編班人數 //string ClassStudentCount = elmClass.ElementText("ClassStudentCount"); //// 班級人數 string ClassStudentCount = elmClass.ElementText("StudentCount"); //2017/1/5 穎驊註解, 雖然看起來很像,但是 "編班人數" 不等於 "班級人數" //編班人數比較像是 星海魔獸 中的人口概念, 有"人口負載力"的感覺 //若該班 有特殊學生,該特殊生狀況需要多照顧,其一人 就可能占住 兩份"編班人數" //年級 string GradeYear = elmClass.ElementText("GradeYear"); bool NormalClass = Convert.ToBoolean(elmClass.ElementText("NormalClass") != "" ? elmClass.ElementText("NormalClass"): "false"); bool SportClass = Convert.ToBoolean(elmClass.ElementText("SportClass") != "" ? elmClass.ElementText("SportClass") : "false"); bool ArtClass = Convert.ToBoolean(elmClass.ElementText("ArtClass") != "" ? elmClass.ElementText("ArtClass") : "false"); bool MusicClass = Convert.ToBoolean(elmClass.ElementText("MusicClass") != "" ? elmClass.ElementText("MusicClass") : "false"); bool DanceClass = Convert.ToBoolean(elmClass.ElementText("DanceClass") != "" ? elmClass.ElementText("DanceClass") : "false"); bool GiftedClass = Convert.ToBoolean(elmClass.ElementText("GiftedClass") != "" ? elmClass.ElementText("GiftedClass") : "false"); bool ResourceClass = Convert.ToBoolean(elmClass.ElementText("ResourceClass") != "" ? elmClass.ElementText("ResourceClass") : "false"); bool IepClass = Convert.ToBoolean(elmClass.ElementText("IepClass") != "" ? elmClass.ElementText("IepClass") : "false"); bool SkillClass = Convert.ToBoolean(elmClass.ElementText("SkillClass") != "" ? elmClass.ElementText("SkillClass") : "false"); bool NoSchoolClass = Convert.ToBoolean(elmClass.ElementText("NoSchoolClass") != "" ? elmClass.ElementText("NoSchoolClass") : "false"); int cot = 0; if (GradeYear != "") { int.TryParse(ClassStudentCount, out cot); SchoolClassTypeStudentCount scts = new SchoolClassTypeStudentCount(); scts.SchoolName = ScTitle; scts.ClassName = ClassName; scts.ClassStudentCount = cot; scts.GradeYear = GradeYear; scts.NormalClass = NormalClass; scts.SportClass = SportClass; scts.ArtClass = ArtClass; scts.MusicClass = MusicClass; scts.DanceClass = DanceClass; scts.GiftedClass = GiftedClass; scts.ResourceClass = ResourceClass; scts.IepClass = IepClass; scts.SkillClass = SkillClass; scts.NoSchoolClass = NoSchoolClass; _SchoolClassTypeStudentCountList.Add(scts); } } cc++; if (cc > 99) { cc = 99; } _bgWorker.ReportProgress(cc); } catch (Exception ex) { } } foreach (var classitem in _SchoolClassTypeStudentCountList) { if (!_SchoolClassTypeCountDict.ContainsKey(classitem.SchoolName)) { SchoolClassFinalData SCFD = new SchoolClassFinalData(); SCFD.SchoolName = classitem.SchoolName; #region 一年級班級整理 if (classitem.GradeYear == "1" || classitem.GradeYear == "7") { //一年級普通班 if (classitem.NormalClass) { //最終分類為普通班 SCFD.NormalClassCount1++; SCFD.NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級體育班 if (classitem.SportClass) { //最終分類為體育班 SCFD.SportClassCount1++; SCFD.SportClassStudentCount1 += classitem.ClassStudentCount; } //一年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 SCFD.SkillClassCount1++; SCFD.SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 SCFD.SkillClassCount1++; SCFD.SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 SCFD.SkillClassCount1++; SCFD.SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 SCFD.NormalClassCount1++; SCFD.NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 SCFD.NormalClassCount1++; SCFD.NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級特教班 if (classitem.IepClass) { //最終分類為特教班 SCFD.IepClassCount1++; SCFD.IepClassStudentCount1 += classitem.ClassStudentCount; } //一年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 SCFD.SkillClassCount1++; SCFD.SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount1++; SCFD.NormalClassStudentCount1 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount1++; SCFD.NormalClassStudentCount1 += classitem.ClassStudentCount; } } #endregion #region 二年級班級整理 if (classitem.GradeYear == "2" || classitem.GradeYear == "8") { //二年級普通班 if (classitem.NormalClass) { //最終分類為普通班 SCFD.NormalClassCount2++; SCFD.NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級體育班 if (classitem.SportClass) { //最終分類為體育班 SCFD.SportClassCount2++; SCFD.SportClassStudentCount2 += classitem.ClassStudentCount; } //二年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 SCFD.SkillClassCount2++; SCFD.SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 SCFD.SkillClassCount2++; SCFD.SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 SCFD.SkillClassCount2++; SCFD.SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 SCFD.NormalClassCount2++; SCFD.NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 SCFD.NormalClassCount2++; SCFD.NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級特教班 if (classitem.IepClass) { //最終分類為特教班 SCFD.IepClassCount2++; SCFD.IepClassStudentCount2 += classitem.ClassStudentCount; } //二年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 SCFD.SkillClassCount2++; SCFD.SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount2++; SCFD.NormalClassStudentCount2 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount2++; SCFD.NormalClassStudentCount2 += classitem.ClassStudentCount; } } #endregion #region 年級班級整理 if (classitem.GradeYear == "3" || classitem.GradeYear == "9") { //三年級普通班 if (classitem.NormalClass) { //最終分類為普通班 SCFD.NormalClassCount3++; SCFD.NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級體育班 if (classitem.SportClass) { //最終分類為體育班 SCFD.SportClassCount3++; SCFD.SportClassStudentCount3 += classitem.ClassStudentCount; } //三年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 SCFD.SkillClassCount3++; SCFD.SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 SCFD.SkillClassCount3++; SCFD.SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 SCFD.SkillClassCount3++; SCFD.SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 SCFD.NormalClassCount3++; SCFD.NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 SCFD.NormalClassCount3++; SCFD.NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級特教班 if (classitem.IepClass) { //最終分類為特教班 SCFD.IepClassCount3++; SCFD.IepClassStudentCount3 += classitem.ClassStudentCount; } //三年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 SCFD.SkillClassCount3++; SCFD.SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount3++; SCFD.NormalClassStudentCount3 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 SCFD.NormalClassCount3++; SCFD.NormalClassStudentCount3 += classitem.ClassStudentCount; } } #endregion _SchoolClassTypeCountDict.Add(classitem.SchoolName, SCFD); } else { _SchoolClassTypeCountDict[classitem.SchoolName].SchoolName = classitem.SchoolName; #region 一年級班級整理 if (classitem.GradeYear == "1" || classitem.GradeYear == "7") { //一年級普通班 if (classitem.NormalClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級體育班 if (classitem.SportClass) { //最終分類為體育班 _SchoolClassTypeCountDict[classitem.SchoolName].SportClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].SportClassStudentCount1 += classitem.ClassStudentCount; } //一年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount1 += classitem.ClassStudentCount; } //一年級特教班 if (classitem.IepClass) { //最終分類為特教班 _SchoolClassTypeCountDict[classitem.SchoolName].IepClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].IepClassStudentCount1 += classitem.ClassStudentCount; } //一年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount1 += classitem.ClassStudentCount; } //一年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount1 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount1++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount1 += classitem.ClassStudentCount; } } #endregion #region 二年級班級整理 if (classitem.GradeYear == "2" || classitem.GradeYear == "8") { //二年級普通班 if (classitem.NormalClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級體育班 if (classitem.SportClass) { //最終分類為體育班 _SchoolClassTypeCountDict[classitem.SchoolName].SportClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].SportClassStudentCount2 += classitem.ClassStudentCount; } //二年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount2 += classitem.ClassStudentCount; } //二年級特教班 if (classitem.IepClass) { //最終分類為特教班 _SchoolClassTypeCountDict[classitem.SchoolName].IepClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].IepClassStudentCount2 += classitem.ClassStudentCount; } //二年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount2 += classitem.ClassStudentCount; } //二年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount2 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount2++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount2 += classitem.ClassStudentCount; } } #endregion #region 年級班級整理 if (classitem.GradeYear == "3" || classitem.GradeYear == "9") { //三年級普通班 if (classitem.NormalClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級體育班 if (classitem.SportClass) { //最終分類為體育班 _SchoolClassTypeCountDict[classitem.SchoolName].SportClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].SportClassStudentCount3 += classitem.ClassStudentCount; } //三年級美術班 if (classitem.ArtClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級音樂班 if (classitem.MusicClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級舞蹈班 if (classitem.DanceClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級資優班 if (classitem.GiftedClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級資源班 if (classitem.ResourceClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount3 += classitem.ClassStudentCount; } //三年級特教班 if (classitem.IepClass) { //最終分類為特教班 _SchoolClassTypeCountDict[classitem.SchoolName].IepClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].IepClassStudentCount3 += classitem.ClassStudentCount; } //三年級技藝專班 if (classitem.SkillClass) { //最終分類為藝才班 _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].SkillClassStudentCount3 += classitem.ClassStudentCount; } //三年級機構式非學校自學班 if (classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount3 += classitem.ClassStudentCount; } //假如都沒有設定, 當作普通班 if (!classitem.NormalClass && !classitem.SportClass && !classitem.ArtClass && !classitem.MusicClass && !classitem.DanceClass && !classitem.GiftedClass && !classitem.ResourceClass && !classitem.IepClass && !classitem.SkillClass && !classitem.NoSchoolClass) { //最終分類為普通班 _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassCount3++; _SchoolClassTypeCountDict[classitem.SchoolName].NormalClassStudentCount3 += classitem.ClassStudentCount; } } #endregion } } _bgWorker.ReportProgress(100); }
private SchoolClubRecord NowConnSchool(School school) { try { SchoolClubRecord scr = new SchoolClubRecord(); scr.school = school; //取得局端登入後Greening發的Passport,並登入指定的Contract Connection con = new Connection(); con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response1 = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response1.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(school.DSNS, "ischool.kh.central_office", Passport); //取得學校各年級上課時間表 //此SQL 共用2個Service GetClubStatus,GetClubCount XmlHelper req = new XmlHelper("<Request/>"); req.AddElement("Condition"); req.AddElement("Condition", "SchoolYear", defSchoolYear); req.AddElement("Condition", "Semester", defSemester); Envelope Response2 = conSchool.SendRequest("_.GetClubStatus", new Envelope(req)); XElement elmResponse1 = XElement.Load(new StringReader(Response2.Body.XmlString)); //整理日期資料 foreach (XElement elmClub in elmResponse1.Elements("OccurClub")) { OccurClub club = new OccurClub(elmClub); scr.clubList.Add(club); } //取得學校各社團清單與數量 Envelope Response3 = conSchool.SendRequest("_.GetClubCount", new Envelope(req)); XElement elmResponse3 = XElement.Load(new StringReader(Response3.Body.XmlString)); //整理社團資料 foreach (XElement elmCourse in elmResponse3.Elements("Course")) { scr.社團數 += 1; scr.clubNameList.Add(elmCourse.ElementText("CourseName")); } return(scr); } catch (Exception ex) { if (ex.Message == "Can't find service:GetClubStatus") { MsgBox.Show("發生錯誤:\n" + school.Title + " - " + " 校端未安裝UDM(GetClubStatus)"); } else { MsgBox.Show("發生錯誤:\n" + school.Title + " - " + ex.Message); } //發生錯誤 } return(null); }
private void LoadClassInfoBySchool() { try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(this.SelectedDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudentCount", new Envelope()); //<Class> // <ClassName>101</ClassName> // <StudentCount>25</StudentCount> // <Lock /> // <Comment /> // <NumberReduceSum /> // <ClassStudentCount>25</ClassStudentCount> //</Class> //班級名稱、實際人數、編班人數、編班順位、編班鎖定、鎖定備註、休學生人數、輟學生人數 XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); grdClassOrder.Rows.Clear(); List <ClassOrder> ClassOrders = new List <ClassOrder>(); foreach (XElement elmClass in elmResponse.Elements("Class")) { ClassOrder vClassOrder = new ClassOrder(); ClassOrders.Add(vClassOrder); string ClassID = elmClass.ElementText("ClassID"); string ClassName = elmClass.ElementText("ClassName"); string TeacherName = elmClass.ElementText("TeacherName"); string StudentCount = elmClass.ElementText("StudentCount"); string ClassStudentCount = elmClass.ElementText("ClassStudentCount"); string NumberReduceSum = elmClass.ElementText("NumberReduceSum"); if (!string.IsNullOrWhiteSpace(NumberReduceSum)) { ClassStudentCount = ClassStudentCount + "(" + StudentCount + "+" + NumberReduceSum + ")"; } string NumberReduceCount = elmClass.ElementText("NumberReduceCount"); string Lock = elmClass.ElementText("Lock"); string UnautoUnlock = elmClass.ElementText("UnautoUnlock"); string LockAppling = elmClass.ElementText("LockAppling");//Jean string Comment = elmClass.ElementText("Comment"); string DistrictComment = elmClass.ElementText("DistrictComment"); //Jean 增加局端解鎖住記 string DistrictUulockDate = elmClass.ElementText("DistrictUulockDate"); //Jean 局端Service string LastUpdateByDistrict = elmClass.ElementText("LastUpdateByDistrict"); string ClassOrder = string.Empty; string DisplayOrder = elmClass.ElementText("DisplayOrder"); string GradeYear = elmClass.ElementText("GradeYear"); string SuspensionStudentCount = elmClass.ElementText("SuspensionStudentCount"); string DropOutStudentCount = elmClass.ElementText("DropOutStudentCount"); //string LockApplyStatus = elmClass.ElementText("LockApplyStatus"); try { string LockApplyStatus = elmClass.ElementText("LockApplyStatus"); //string LockApplyStatus = String.IsNullOrWhiteSpace(lockApplyStatusString) ? "" : ; vClassOrder.School = this.School; vClassOrder.ClassID = ClassID; vClassOrder.ClassName = ClassName; vClassOrder.TeacherName = TeacherName; vClassOrder.StudentCount = StudentCount; vClassOrder.SuspensionStudentCount = "" + SuspensionStudentCount; vClassOrder.DropOutStudentCount = "" + DropOutStudentCount; vClassOrder.ClassStudentCount = ClassStudentCount; vClassOrder.NumberReduceSum = NumberReduceSum; vClassOrder.NumberReduceCount = NumberReduceCount; vClassOrder.UnautoUnlock = UnautoUnlock == "t" ? "(不自動解鎖)" : ""; // vClassOrder.LockAppling = LockAppling == "t" ? "(校端鎖班申請中)" : ""; vClassOrder.LockApplingStatus = LockApplyStatus; } catch (Exception ex) { Console.WriteLine($"錯誤訊息{ex.Message} ,{ex.StackTrace}"); } // 檢查是否有特殊生人數 // 檢查是否有特殊生人數 vClassOrder.hasNumberReduce = 0; int nrc; if (int.TryParse(NumberReduceCount, out nrc)) { if (nrc > 0) { vClassOrder.hasNumberReduce = 1; } } vClassOrder.Lock = Lock; vClassOrder.Comment = Comment; vClassOrder.DistrictComment = DistrictComment; vClassOrder.DistrictUulockDate = DistrictUulockDate; vClassOrder.LastUpdateByDistrict = LastUpdateByDistrict; vClassOrder.ClassOrderNumber = 0; //if(Lock=="鎖定") // vClassOrder.ClassOrderNumber = 999; vClassOrder.ClassStudentCountValue = StudentCount.GetInt() + NumberReduceSum.GetInt(); if (string.IsNullOrEmpty(DisplayOrder)) { vClassOrder.DisplayOrder = 999; } else { vClassOrder.DisplayOrder = int.Parse(DisplayOrder); } if (string.IsNullOrEmpty(GradeYear)) { vClassOrder.GradeYear = 999; } else { vClassOrder.GradeYear = int.Parse(GradeYear); } } ClassOrders.CalculateClassOrder(); // 判斷排序方式 int NoCount = 0; foreach (ClassOrder co in ClassOrders) { int xx; if (int.TryParse(co.ClassName, out xx)) { NoCount++; } } // 有3筆以上用班級名稱排,不然用班級顯示順序 if (NoCount > 3) { ClassOrders = (from data in ClassOrders orderby data.GradeYear ascending, data.ClassOrderNumber, data.ClassStudentCountValue, data.ClassName ascending select data).ToList(); } else { ClassOrders = (from data in ClassOrders orderby data.GradeYear ascending, data.ClassOrderNumber, data.ClassStudentCountValue, data.DisplayOrder ascending select data).ToList(); } foreach (ClassOrder vClassOrder in ClassOrders) { string vDisplayOrder; string vGradeYear; //string vClassOrderNumber; if (vClassOrder.DisplayOrder == 999) { vDisplayOrder = ""; } else { vDisplayOrder = vClassOrder.DisplayOrder.ToString(); } if (vClassOrder.GradeYear == 999) { vGradeYear = ""; } else { vGradeYear = vClassOrder.GradeYear.ToString(); } //if (vClassOrder.ClassOrderNumber == 999) // vClassOrderNumber = ""; //else // vClassOrderNumber = vClassOrder.ClassOrderNumber.ToString(); string LockStatus = ""; if (vClassOrder.Lock == "鎖定") { LockStatus = $" {vClassOrder.Lock} {vClassOrder.UnautoUnlock} "; //if (vClassOrder.Lock == "鎖定" ) //{ // LockStatus = $"{vClassOrder.LockApplyStatus}{vClassOrder.Una"; //} } else //不鎖定 { if (vClassOrder.LockApplingStatus == ApplyStatus.鎖班申請中_鎖班數超過二分之一.ToString()) { LockStatus = $"{vClassOrder.LockApplingStatus}"; } if (vClassOrder.LockApplingStatus == ApplyStatus.鎖班申請退回_鎖班數超過二分之一.ToString()) { LockStatus = $"{vClassOrder.LockApplingStatus}"; } } int rowIndex = grdClassOrder.Rows.Add( vClassOrder.School.Title, vClassOrder.ClassName, vClassOrder.TeacherName, vClassOrder.StudentCount, vClassOrder.SuspensionStudentCount, vClassOrder.DropOutStudentCount, vClassOrder.ClassStudentCount, vClassOrder.NumberReduceCount, vClassOrder.ClassOrderNumber, LockStatus, vClassOrder.Comment, vClassOrder.DistrictComment, vClassOrder.DistrictUulockDate, vGradeYear, vDisplayOrder ); grdClassOrder.Rows[rowIndex].Tag = vClassOrder; } } catch (Exception ve) { MessageBox.Show(ve.Message, ve.StackTrace); } }
private void buttonX1_Click(object sender, EventArgs e) { string SelectedDSNS = "" + cmbSchool.SelectedValue; string School = (cmbSchool.SelectedItem as School).Title; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(SelectedDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetStudentHighConcern", new Envelope()); //<Class> // <ClassName>101</ClassName> // <StudentCount>25</StudentCount> // <Lock /> // <Comment /> // <NumberReduceSum /> // <ClassStudentCount>25</ClassStudentCount> //</Class> //班級名稱、實際人數、編班人數、編班順位、編班鎖定、鎖定備註 XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); grdClassOrder.Rows.Clear(); foreach (XElement elmStudent in elmResponse.Elements("Student")) { string ClassName = elmStudent.ElementText("ClassName"); string StudentName = elmStudent.ElementText("StudentName"); string SeatNo = elmStudent.ElementText("SeatNo"); string HighConcern = elmStudent.ElementText("HighConcern"); string NumberReduce = elmStudent.ElementText("NumberReduce"); string DocNo = elmStudent.ElementText("DocNo"); grdClassOrder.Rows.Add( School, StudentName, ClassName, SeatNo, NumberReduce, DocNo ); } } catch (Exception ve) { MessageBox.Show(ve.Message); } }
private void buttonX1_Click(object sender, EventArgs e) { string SelectedDSNS = "" + cmbSchool.SelectedValue; string School = (cmbSchool.SelectedItem as School).Title; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(SelectedDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudentCount", new Envelope()); //<Class> // <ClassName>101</ClassName> // <StudentCount>25</StudentCount> // <Lock /> // <Comment /> // <NumberReduceSum /> // <ClassStudentCount>25</ClassStudentCount> //</Class> //班級名稱、實際人數、編班人數、編班順位、編班鎖定、鎖定備註 XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); grdClassOrder.Rows.Clear(); List<ClassOrder> ClassOrders = new List<ClassOrder>(); foreach (XElement elmClass in elmResponse.Elements("Class")) { ClassOrder vClassOrder = new ClassOrder(); ClassOrders.Add(vClassOrder); string ClassName = elmClass.ElementText("ClassName"); string StudentCount = elmClass.ElementText("StudentCount"); string ClassStudentCount = elmClass.ElementText("ClassStudentCount"); string NumberReduceSum = elmClass.ElementText("NumberReduceSum"); if (!string.IsNullOrWhiteSpace(NumberReduceSum)) ClassStudentCount = ClassStudentCount + "(" + StudentCount + "+" + NumberReduceSum + ")"; string NumberReduceCount = elmClass.ElementText("NumberReduceCount"); string Lock = elmClass.ElementText("Lock"); string Comment = elmClass.ElementText("Comment"); string ClassOrder = string.Empty; vClassOrder.ClassName = ClassName; vClassOrder.StudentCount = StudentCount; vClassOrder.ClassStudentCount = ClassStudentCount; vClassOrder.NumberReduceSum = NumberReduceSum; vClassOrder.NumberReduceCount = NumberReduceCount; vClassOrder.Lock = Lock; vClassOrder.Comment = Comment; vClassOrder.ClassOrderNumber = ClassOrder; vClassOrder.ClassStudentCountValue = StudentCount.GetInt() + NumberReduceSum.GetInt(); } ClassOrders.CalculateClassOrder(); foreach(ClassOrder vClassOrder in ClassOrders) { grdClassOrder.Rows.Add( School, vClassOrder.ClassName, vClassOrder.StudentCount, vClassOrder.ClassStudentCount, vClassOrder.NumberReduceCount, vClassOrder.ClassOrderNumber, vClassOrder.Lock, vClassOrder.Comment); } } catch (Exception ve) { MessageBox.Show(ve.Message); } }
private void UpdateSchoolDate() { foreach (School schoolInfo in SelectedSchools) { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(schoolInfo.DSNS, "ischool.kh.central_office", Passport); //依據功能不同呼叫不同service, //var xml = new XmlHelper("<Request/>"); //for(var i = 0;i<10;i++) //{ // var stud = new XmlHelper(xml.AddElement("Request", "Student")); // stud.AddElement("Name").InnerText = i.ToString(); // stud.AddElement("ID", i.ToString()); //} // log用 string ClinetInfo = @" <ClientInfo> <HostName></HostName> <NetworkAdapterList> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress/> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> <NetworkAdapter> <IPAddress></IPAddress> <PhysicalAddress></PhysicalAddress> </NetworkAdapter> </NetworkAdapterList> </ClientInfo> "; var xml = new XmlHelper("<Request/>"); xml.AddElement("districtComment").InnerText = this.DistictComment; xml.AddElement("ClientInfo").InnerText = ClinetInfo; Response = conSchool.SendRequest("_.UpdateClassNulock", new Envelope(xml)); //update unlock } }
void _bgWorker_DoWork(object sender, DoWorkEventArgs e) { int cc = 5; _bgWorker.ReportProgress(1); // 取得學校 UDT 並加入 Dict Dictionary <string, string> SelectSchoolDict = new Dictionary <string, string>(); foreach (string key in _SchoolDict.Keys) { if (_SelectSchoolList.Contains(key)) { SelectSchoolDict.Add(key, _SchoolDict[key]); } } _bgWorker.ReportProgress(5); _StudentChangeClassList.Clear(); foreach (string ScTitle in SelectSchoolDict.Keys) { string ScDSNS = SelectSchoolDict[ScTitle]; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(ScDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudSpecial", new Envelope()); XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); foreach (XElement elmStudent in elmResponse.Elements("Student")) { StudentChangeClass scc = new StudentChangeClass(); scc.ClassName = elmStudent.ElementText("ClassName"); scc.OldClassName = elmStudent.ElementText("OldClassName"); scc.SchoolName = ScTitle; scc.StudentName = elmStudent.ElementText("StudentName"); scc.OldClassComment = elmStudent.ElementText("OldClassComment"); scc.ClassComment = elmStudent.ElementText("ClassComment"); if (elmStudent.Element("Content") != null) { if (elmStudent.Element("Content").Element("Content") != null) { if (elmStudent.Element("Content").Element("Content").Element("FirstClassName") != null) { scc.ClassOrderName1 = elmStudent.Element("Content").Element("Content").Element("FirstClassName").Value; } if (elmStudent.Element("Content").Element("Content").Element("SecondClassName") != null) { scc.ClassOrderName2 = elmStudent.Element("Content").Element("Content").Element("SecondClassName").Value; } if (elmStudent.Element("Content").Element("Content").Element("ThridClassName") != null) { scc.ClassOrderName3 = elmStudent.Element("Content").Element("Content").Element("ThridClassName").Value; } } } if (_chkOp1 == false && _chkOp2 == false) { _StudentChangeClassList.Add(scc); } else { if (_chkOp1 == true && _chkOp2 == true) { if (scc.ClassComment == _ClassComment && scc.OldClassComment == _OldClassComment && scc.ClassName == _ClassName && scc.OldClassName == _OldClassName) { _StudentChangeClassList.Add(scc); } } else { if (_chkOp1 == true && scc.ClassComment == _ClassComment && scc.OldClassComment == _OldClassComment) { _StudentChangeClassList.Add(scc); } if (_chkOp2 == true && scc.ClassName == _ClassName && scc.OldClassName == _OldClassName) { _StudentChangeClassList.Add(scc); } } } } cc++; if (cc > 99) { cc = 99; } _bgWorker.ReportProgress(cc); } catch (Exception ex) { } } _bgWorker.ReportProgress(100); }
private void buttonX1_Click(object sender, EventArgs e) { string SelectedDSNS = "" + cmbSchool.SelectedValue; string School = (cmbSchool.SelectedItem as School).Title; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(SelectedDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetStudentHighConcern", new Envelope()); //<Class> // <ClassName>101</ClassName> // <StudentCount>25</StudentCount> // <Lock /> // <Comment /> // <NumberReduceSum /> // <ClassStudentCount>25</ClassStudentCount> //</Class> //班級名稱、實際人數、編班人數、編班順位、編班鎖定、鎖定備註 XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); grdClassOrder.Rows.Clear(); foreach (XElement elmStudent in elmResponse.Elements("Student")) { string ClassName = elmStudent.ElementText("ClassName"); string StudentName = elmStudent.ElementText("StudentName"); string SeatNo = elmStudent.ElementText("SeatNo"); string HighConcern = elmStudent.ElementText("HighConcern"); string NumberReduce = elmStudent.ElementText("NumberReduce"); string DocNo = elmStudent.ElementText("DocNo"); grdClassOrder.Rows.Add( School, StudentName, ClassName, SeatNo, NumberReduce, DocNo ); } } catch (Exception ve) { MessageBox.Show(ve.Message); } }
void _bgWorker_DoWork(object sender, DoWorkEventArgs e) { int cc = 5; _bgWorker.ReportProgress(1); // 取得學校 UDT 並加入 Dict _SchoolClassStudentCountList.Clear(); Dictionary <string, string> SelectSchoolDict = new Dictionary <string, string>(); foreach (string key in _SchoolDict.Keys) { if (_SelectSchoolList.Contains(key)) { SelectSchoolDict.Add(key, _SchoolDict[key]); } } _bgWorker.ReportProgress(5); foreach (string ScTitle in SelectSchoolDict.Keys) { string ScDSNS = SelectSchoolDict[ScTitle]; try { Connection con = new Connection(); //取得局端登入後Greening發的Passport,並登入指定的Contract con.Connect(FISCA.Authentication.DSAServices.DefaultDataSource.AccessPoint, "ischool.kh.central_office.user", FISCA.Authentication.DSAServices.PassportToken); //取得該Contract所發的Passport Envelope Response = con.SendRequest("DS.Base.GetPassportToken", new Envelope()); PassportToken Passport = new PassportToken(Response.Body); //TODO:拿此Passport登入各校 Connection conSchool = new Connection(); conSchool.Connect(ScDSNS, "ischool.kh.central_office", Passport); Response = conSchool.SendRequest("_.GetClassStudentCount", new Envelope()); XElement elmResponse = XElement.Load(new StringReader(Response.Body.XmlString)); foreach (XElement elmClass in elmResponse.Elements("Class")) { string ClassName = elmClass.ElementText("ClassName"); //// 班級人數 //string StudentCount = elmClass.ElementText("StudentCount"); // 編班人數 string ClassStudentCount = elmClass.ElementText("ClassStudentCount"); int cot; if (int.TryParse(ClassStudentCount, out cot)) { // 超過人數上限 if (cot > _ClassStudentMax) { SchoolClassStudentCount scs = new SchoolClassStudentCount(); scs.SchoolName = ScTitle; scs.ClassName = ClassName; scs.ClassStudentCount = cot; _SchoolClassStudentCountList.Add(scs); } } } cc++; if (cc > 99) { cc = 99; } _bgWorker.ReportProgress(cc); } catch (Exception ex) { } } _bgWorker.ReportProgress(100); }