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);
        }
示例#2
0
        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);
        }
示例#4
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
            }
        }
示例#9
0
        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);
            }
        }
示例#11
0
        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
            }
        }
示例#12
0
        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);
        }
示例#13
0
        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);
            }
        }
示例#14
0
        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);
        }