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)); } } }
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); }
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"; //} }