/// <summary>
        /// 取得新增的社團學生參與記錄
        /// </summary>
        public Dictionary <string, XmlHelper> GetNewStudSCJoinList()
        {
            Dictionary <string, XmlHelper> dic = new Dictionary <string, XmlHelper>();

            foreach (OnlineStudent stud in GetList)
            {
                if (stud.JoinSuccess)
                {
                    if (!dic.ContainsKey(stud.School))
                    {
                        FISCA.DSAClient.XmlHelper _helper = new FISCA.DSAClient.XmlHelper("<Request/>");
                        dic.Add(stud.School, _helper);
                    }

                    //建立社團物件
                    dic[stud.School].AddElement("K12.scjoin.universal");
                    dic[stud.School].AddElement("K12.scjoin.universal", "Field");
                    dic[stud.School].AddElement("K12.scjoin.universal/Field", "Lock", "f");
                    dic[stud.School].AddElement("K12.scjoin.universal/Field", "RefClubId", stud.新參與社團.UID);
                    dic[stud.School].AddElement("K12.scjoin.universal/Field", "RefStudentId", stud.Id);
                }
            }

            return(dic);
        }
        private void CallTransferInWS()
        {
            TransferInRecord record = Record;

            try
            {
                string contract = "StudentTransferHsinchuSpecial";
                string service  = "SyncTransferIn";

                SecurityToken token    = (DSAServices.DefaultDataSource.SecurityToken as SessionToken).OriginToken;
                Connection    conn     = DSAServices.DefaultDataSource.AsContract(contract, token);
                XElement      econtent = XElement.Parse(record.ModifiedContent);

                FISCA.DSAClient.XmlHelper req = new FISCA.DSAClient.XmlHelper("<Request/>");
                req.AddElement(".", "TargetSchool", GetSchoolCode());
                req.AddElement(".", "Writer", string.Format("{0}:{1}", DSAServices.AccessPoint, DSAServices.UserAccount));
                req.AddElement(".", "StudentID", econtent.XPathSelectElement("Student").ElementText("IDNumber"));
                req.AddElement(".", "StudentNumber", SRecord.StudentNumber);
                req.AddElement(".", "Grade", SRecord.Class.GradeYear + "");
                req.AddElement(".", "ClassName", SRecord.Class.Name.Substring(1));

                RTOut.WriteLine(req.XmlString);
                RTOut.WriteLine(conn.SendRequest(service, new Envelope(req)).XmlString);
            }
            catch (Exception ex)
            {
                RTOut.WriteError(ex);
            }
        }
Example #3
0
        public int Execute(List<string> cmds)
        {
            FISCA.DSAClient.XmlHelper req = new FISCA.DSAClient.XmlHelper("<Request/>");

            foreach (string cmd in cmds)
                req.AddElement(".", "Command", cmd);

            //呼叫 Service。
            Envelope rsp = Connection.SendRequest("UDTService.DML.Command", new Envelope(req));

            return 0;
        }
        /// <summary>
        /// 取得學生學年度學期社團參與記錄
        /// </summary>
        static public FISCA.DSAClient.XmlHelper GetSCJoinRequest(string SchoolYear, string Semester, List <string> ClubNameList)
        {
            FISCA.DSAClient.XmlHelper _xml;
            _xml = new FISCA.DSAClient.XmlHelper("<Reqluest/>");
            _xml.AddElement("Field");
            _xml.AddElement("Field", "All");
            _xml.AddElement("Condition");

            if (!string.IsNullOrEmpty(SchoolYear) && !string.IsNullOrEmpty(Semester))
            {
                _xml.AddElement("Condition", "SchoolYear", SchoolYear);
                _xml.AddElement("Condition", "Semester", Semester);
                foreach (string each in ClubNameList)
                {
                    _xml.AddElement("Condition", "ClubName", each);
                }
            }

            return(_xml);
        }
Example #5
0
        /// 上傳檔案到局端 - 2020/7/30參考班級鎖定功能
        /// </summary>
        public static string UploadFile(string ID, string Data, string FileName)
        {
            string DSNS        = FISCA.Authentication.DSAServices.AccessPoint;
            string AccessPoint = @"j.kh.edu.tw";

            if (FISCA.RTContext.IsDiagMode)
            {
                string accPoint = FISCA.RTContext.GetConstant("KH_AccessPoint");
                if (!string.IsNullOrEmpty(accPoint))
                {
                    AccessPoint = accPoint;
                }
            }

            string Contract    = "log";
            string ServiceName = "_.Upload";

            string errMsg = "";

            try
            {
                XElement xmlRoot = new XElement("Request");
                xmlRoot.SetElementValue("ID", ID);
                xmlRoot.SetElementValue("Data", Data);
                xmlRoot.SetElementValue("FileName", FileName);
                xmlRoot.SetElementValue("DSNS", DSNS);
                xmlRoot.SetElementValue("Type", "student");
                FISCA.DSAClient.XmlHelper  reqXML = new FISCA.DSAClient.XmlHelper(xmlRoot.ToString());
                FISCA.DSAClient.Connection cn     = new FISCA.DSAClient.Connection();
                cn.Connect(AccessPoint, Contract, DSNS, DSNS);
                Envelope rsp    = cn.SendRequest(ServiceName, new Envelope(reqXML));
                XElement rspXML = XElement.Parse(rsp.XmlString);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
            }
            return(errMsg);
        }
Example #6
0
        private int TagUseCount(string tagId)
        {
            XHelper xreq = new XHelper("<Request/>");
            xreq.AddElement("Field");
            xreq.AddElement("Field", "ID");
            xreq.AddElement("Field", EntityIdField);
            xreq.AddElement("Condition");
            xreq.AddElement("Condition", "TagID", tagId);

            Envelope rsp = DSAServices.DefaultDataSource.SendRequest(CounterService, new Envelope(xreq));
            XHelper xrsp = new XHelper(rsp.Body);

            return xrsp.GetElements("Tag").Count();
        }
Example #7
0
        /// <summary>
        /// 取得 ischool 的學生基本資料清單
        /// </summary>
        /// <returns></returns>
        private bool GetDSAStudents()
        {
            bool isPass = JudgetDSAConnected();
            LogUtil.LogToTransferSummary(Constants.STEP_SyncData, "開始讀取 ischool 的『學生資料』。", isPass);
            try
            {
                dsaStuds = new Dictionary<string, string>();
                FISCA.DSAClient.Envelope resp = dsaCn.SendRequest(Constants.DSAServiceName_GetStudentList,
                                                                  new FISCA.DSAClient.Envelope());
                FISCA.DSAClient.XmlHelper helper = new FISCA.DSAClient.XmlHelper(resp.Body);
                foreach (XmlElement elm in helper.GetElements("Student"))
                {
                    string studID = Util.GetNodeValue(elm, "ID");
                    string studNo = Util.GetNodeValue(elm, "StudentNumber").ToUpper();
                    if (!dsaStuds.ContainsKey(studNo.ToUpper()))
                        dsaStuds.Add(studNo.ToUpper(), studID);
                }
                LogUtil.LogToTransferSummary(Constants.STEP_SyncData, string.Format("成功讀取 {0} 筆 ischool 的『學生資料』。",dsaStuds.Count.ToString()), isPass);
            }
            catch (Exception ex)
            {
                LogUtil.LogToTransferSummary(Constants.STEP_SyncData, "讀取 ischool『學生資料』時發生錯誤!" + ex.Message , isPass);
                isPass = false;
            }

            return isPass;
        }
Example #8
0
 /// <summary>
 /// 取得 ischool 的系所組別清單
 /// </summary>
 /// <returns></returns>
 private bool GetDeptGroups()
 {
     bool isPass = JudgetDSAConnected();
     LogUtil.LogToTransferSummary(Constants.STEP_SyncData, "開始讀取 ischool 的『系所組別』。", isPass);
     try
     {
         dsaDeptGrps = new Dictionary<string, string>();
         FISCA.DSAClient.Envelope resp = dsaCn.SendRequest(Constants.DSAServiceName_GetDeptGroupList,
                                                           new FISCA.DSAClient.Envelope());
         FISCA.DSAClient.XmlHelper helper = new FISCA.DSAClient.XmlHelper(resp.Body);
         foreach (XmlElement elm in helper.GetElements("DeptGroup"))
         {
             string id = Util.GetNodeValue(elm, "ID");
             string code = Util.GetNodeValue(elm, "Code");
             if (!this.dsaDeptGrps.ContainsKey(code))
                 dsaDeptGrps.Add(code, id);
         }
         LogUtil.LogToTransferSummary(Constants.STEP_SyncData, string.Format("成功讀取 {0} 筆 ischool 的『系所組別』。", this.dsaDeptGrps.Keys.Count.ToString()), isPass);
     }
     catch (Exception ex)
     {
         LogUtil.LogToTransferSummary(Constants.STEP_SyncData, "讀取 ischool『系所組別』時發生錯誤!" + ex.Message, isPass);
         isPass = false;
     }
     return isPass;
 }