Exemple #1
0
        public BulkDescription(XmlElement desc)
        {
            _description = desc;

            _columns = new BulkColumnCollection();
            foreach (XmlElement each in desc.SelectNodes("//Field"))
            {
                BulkColumn column = new BulkColumn(each);

                try
                {
                    _columns.Add(column.FullDisplayText, column);
                }
                catch (ArgumentException ex)
                {
                    throw new XmlParseException("載入欄位資訊錯誤,可能是欄位名稱重覆。(" + column.FullDisplayText + ")", each, ex);
                }
            }

            _generators = new List <ElementGenerator>();
            foreach (XmlNode each in desc.ChildNodes)
            {
                if (each.NodeType == XmlNodeType.Element)
                {
                    _generators.Add(new ElementGenerator(each as XmlElement));
                }
            }
        }
Exemple #2
0
        public void GenerateInsertRequest(SheetReader reader, BulkColumnCollection acceptColumns, XmlElement output)
        {
            foreach (ElementGenerator each in _generators)
            {
                if (acceptColumns.ContainGroup(each.SourceName))
                {
                    if (each.SourceName == "畢結業證書字號")
                    {
                        XmlElement dn  = output.OwnerDocument.CreateElement("DiplomaNumber");
                        XmlElement dnc = output.OwnerDocument.CreateElement("DiplomaNumber");
                        output.AppendChild(dn);
                        dn.AppendChild(dnc);

                        dnc.InnerText = reader.GetValue("畢結業證書字號");
                    }
                    else
                    {
                        each.Generate(reader, output);
                    }
                }
            }

            //if (acceptColumns.ContainsKey("新生:異動代號") &&
            //    acceptColumns.ContainsKey("新生:異動日期") &&
            //    acceptColumns.ContainsKey("新生:國中校名") &&
            //    acceptColumns.ContainsKey("新生:國中縣市"))
            //{
            //    XmlElement newelm = output.OwnerDocument.CreateElement("EnrollmentSynced");
            //    output.AppendChild(newelm);
            //    newelm.InnerText = "0";
            //}
        }
        /// <summary>
        /// 取得與 columns 參數交集的欄位資訊。
        /// </summary>
        public BulkColumnCollection GetInstersection(string[] columns)
        {
            BulkColumnCollection cols = new BulkColumnCollection();

            foreach (string each in columns)
            {
                if (ContainsKey(each))
                {
                    BulkColumn column = this[each];
                    cols.Add(column.FullDisplayText, column);
                }
            }

            return(cols);
        }
Exemple #4
0
        public void GenerateUpdateRequest(SheetReader reader, BulkColumnCollection acceptColumns,
                                          XmlElement output, string identifyName, string shiftName, string ref_student_id)
        {
            foreach (ElementGenerator each in _generators)
            {
                if (acceptColumns.ContainGroup(each.SourceName) && each.SourceName != identifyName && each.SourceName != shiftName)
                {
                    if (each.SourceName == "畢結業證書字號")
                    {
                        XmlElement dn = output.OwnerDocument.CreateElement("DiplomaNumberRaw");
                        output.AppendChild(dn);

                        dn.InnerText = reader.GetValue("畢結業證書字號");
                    }
                    else
                    {
                        each.Generate(reader, output);
                    }
                }
                else if (each.SourceName == identifyName)
                {
                    XmlElement condition = output.OwnerDocument.CreateElement("Condition");
                    output.AppendChild(condition);

                    //2017/4/19 穎驊新增 以後無論是 學號、身分字號 當識別欄位,最後都是以 StudentID(ref_student_id) 匯入新增
                    XmlElement identifyElm = output.OwnerDocument.CreateElement("StudentID");
                    condition.AppendChild(identifyElm);

                    identifyElm.InnerText = ref_student_id;
                }
            }

            //if (acceptColumns.ContainsKey("新生:異動代號") &&
            //    acceptColumns.ContainsKey("新生:異動日期") &&
            //    acceptColumns.ContainsKey("新生:國中校名") &&
            //    acceptColumns.ContainsKey("新生:國中縣市"))
            //{
            //    XmlElement newelm = output.OwnerDocument.CreateElement("EnrollmentSynced");
            //    output.AppendChild(newelm);
            //    newelm.InnerText = "0";
            //}
        }