static string GetOneTR(XmlNode root, string strElementName, string strTitle) { string strValue = DomUtil.GetElementText(root, strElementName); return(GetOneTR(strElementName, strTitle, strValue)); }
/// <summary> /// /// </summary> /// <param name="openid"></param> /// <param name="myinfo"></param> /// <param name="strError"></param> /// <returns> /// -1 出错 /// 0 未绑定 /// 1 成功 /// </returns> public int GetMyInfo1(string strReaderBarcode, out string strMyInfo, out string strError) { strError = ""; strMyInfo = ""; Debug.Assert(String.IsNullOrEmpty(strReaderBarcode) == false); /* * // 检查是否已经绑定读者账号 * long lRet = this.CheckIsBinding(strWeiXinId,out strError); * if (lRet == -1) * return -1; * // 未绑定 * if (lRet == 0) * { * strError = "尚未绑定读者账号"; * return 0; * } */ // 得到高级xml string strXml = ""; long lRet = this.GetReaderAdvanceXml(strReaderBarcode, out strXml, out strError); if (lRet == -1) { return(-1); } // 取出个人信息 XmlDocument dom = new XmlDocument(); dom.LoadXml(strXml); //string strReaderBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strName = DomUtil.GetElementText(dom.DocumentElement, "name"); string strDepartment = DomUtil.GetElementText(dom.DocumentElement, "department"); string strState = DomUtil.GetElementText(dom.DocumentElement, "state"); string strCreateDate = DateTimeUtil.ToLocalTime(DomUtil.GetElementText(dom.DocumentElement, "createDate"), "yyyy/MM/dd"); string strExpireDate = DateTimeUtil.ToLocalTime(DomUtil.GetElementText(dom.DocumentElement, "expireDate"), "yyyy/MM/dd"); string strReaderType = DomUtil.GetElementText(dom.DocumentElement, "readerType"); string strComment = DomUtil.GetElementText(dom.DocumentElement, "comment"); strMyInfo = "个人信息" + "\n" + "姓名:" + strName + "\n" + "证条码号:" + strReaderBarcode + "\n" + "部门:" + strDepartment + "\n" + "联系方式:\n" + GetContactString(dom) + "\n" + "状态:" + strState + "\n" + "有效期:" + strCreateDate + "~" + strExpireDate + "\n" + "读者类别:" + strReaderType + "\n" + "注释:" + strComment; return(1); }
// 获得读者类型 // return: // -1 出错 // 0 没有找到读者记录 // 1 找到 int GetReaderType(string strReaderBarcode, out string strReaderType, out string strError) { strError = ""; strReaderType = ""; if (string.IsNullOrEmpty(strReaderBarcode) == true) { strError = "strReaderBarcode 不能为空"; return -1; } RmsChannel channel = this.RmsChannels.GetChannel(this.App.WsUrl); if (channel == null) { strError = "get channel error"; return -1; } // 读入读者记录 string strReaderXml = ""; string strOutputReaderRecPath = ""; byte[] reader_timestamp = null; int nRet = this.App.GetReaderRecXml( // this.RmsChannels, channel, strReaderBarcode, out strReaderXml, out strOutputReaderRecPath, out reader_timestamp, out strError); if (nRet == 0) { strError = "读者证条码号 '" + strReaderBarcode + "' 不存在"; return 0; } if (nRet == -1) { strError = "读入读者记录时发生错误: " + strError; return -1; } XmlDocument readerdom = null; nRet = LibraryApplication.LoadToDom(strReaderXml, out readerdom, out strError); if (nRet == -1) { strError = "装载读者记录进入XML DOM时发生错误: " + strError; return -1; } strReaderType = DomUtil.GetElementText(readerdom.DocumentElement, "readerType"); return 1; }
// 获得历史信息 // parameters: // nStart 开始位置。如果为 -1,表示仅获得事项总数 // return: // -2 尚未登录 // -1 出错 // 其它 符合条件的事项总数 int GetChargingHistory(int nPageNo, int nItemsPerPage, out List <ChargingItemWrapper> results, out string strError) { strError = ""; results = null; // 获得读者证条码号 string strReaderBarcode = ""; { // return: // -1 出错 // 0 成功 // 1 尚未登录 int nRet = this.LoadReaderXml(out strError); if (nRet == -1) { return(0); } if (nRet == 1) { return(-2); } strReaderBarcode = DomUtil.GetElementText(ReaderDom.DocumentElement, "barcode"); } OpacApplication app = (OpacApplication)this.Page.Application["app"]; SessionInfo sessioninfo = (SessionInfo)this.Page.Session["sessioninfo"]; LibraryChannel channel = sessioninfo.GetChannel(true); try { // 获得借阅历史 // parameters: // nPageNo 页号 // nItemsPerPage 每页的事项个数。如果为 -1,表示希望从头获取全部内容 // return: // -1 出错 // 其它 符合条件的事项总数 return((int)//sessioninfo.Channel. channel.LoadChargingHistory( null, strReaderBarcode, "return,lost,read", nPageNo, nItemsPerPage, out results, out strError)); } finally { sessioninfo.ReturnChannel(channel); } }
// 记录是否允许删除? // return: // -1 出错。不允许删除。 // 0 不允许删除,因为权限不够等原因。原因在strError中 // 1 可以删除 public override int CanDelete( SessionInfo sessioninfo, XmlDocument domExist, out string strError) { strError = ""; if (sessioninfo == null) { strError = "sessioninfo == null"; return(-1); } if (sessioninfo.UserType == "reader") { string strReaderState = DomUtil.GetElementText(sessioninfo.Account.ReaderDom.DocumentElement, "state"); if (StringUtil.IsInList("注销", strReaderState) == true) { strError = "读者证状态为 注销, 不能删除任何评注记录"; return(0); } string strNewUserID = sessioninfo.UserID; string strOldUserID = DomUtil.GetElementText(domExist.DocumentElement, "creator"); if (strNewUserID != strOldUserID) { strError = "读者身份的用户不能删除由其他用户创建的评注记录"; return(0); } string strState = DomUtil.GetElementText(domExist.DocumentElement, "state"); if (StringUtil.IsInList("锁定", strState) == true) { strError = "读者身份的用户不能删除处于锁定状态的评注记录"; return(0); } } // 2012/10/4 if (sessioninfo.GlobalUser == false) { string strLibraryCode = DomUtil.GetElementText(domExist.DocumentElement, "libraryCode"); // 检查当前用户是否管辖评注记录 if (StringUtil.IsInList(strLibraryCode, sessioninfo.LibraryCodeList) == false) { strError = "当前评注记录(<libraryCode>元素中)的馆代码 '" + strLibraryCode + "' 不在当前用户的馆代码 '" + sessioninfo.LibraryCodeList + "' 管辖范围内。删除评注记录的操作被拒绝"; return(0); } } return(1); }
static string GetPii(XmlDocument dom) { string pii = DomUtil.GetElementText(dom.DocumentElement, "barcode"); if (string.IsNullOrEmpty(pii)) { pii = "@refID:" + DomUtil.GetElementText(dom.DocumentElement, "refID"); } return(pii); }
void LoadData() { if (this.CfgDom == null || this.CfgDom.DocumentElement == null) { return; } this.textBox_title_typeName.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "typeName"); // XmlNode node_title = this.CfgDom.DocumentElement.SelectSingleNode("title"); this.textBox_title_title.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "title").Replace("\\r", "\r\n"); this.textBox_title_comment.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "titleComment").Replace("\\r", "\r\n"); this.listView_columns.Items.Clear(); XmlNodeList nodes = this.CfgDom.DocumentElement.SelectNodes("columns/column"); foreach (XmlNode node in nodes) { string strName = DomUtil.GetAttr(node, "name"); string strDataType = DomUtil.GetAttr(node, "type"); string strAlign = DomUtil.GetAttr(node, "align"); string strSum = DomUtil.GetAttr(node, "sum"); string strClass = DomUtil.GetAttr(node, "class"); string strEval = DomUtil.GetAttr(node, "eval"); ListViewItem item = new ListViewItem(); ListViewUtil.ChangeItemText(item, COLUMN_NAME, strName); ListViewUtil.ChangeItemText(item, COLUMN_DATATYPE, strDataType); ListViewUtil.ChangeItemText(item, COLUMN_ALIGN, strAlign); ListViewUtil.ChangeItemText(item, COLUMN_SUM, strSum); ListViewUtil.ChangeItemText(item, COLUMN_CSSCLASS, strClass); ListViewUtil.ChangeItemText(item, COLUMN_EVAL, strEval); this.listView_columns.Items.Add(item); } this.textBox_columns_sortStyle.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "columnSortStyle"); this.textBox_css_content.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "css").Replace("\\r", "\r\n").Replace("\\t", "\t"); this.checkedComboBox_property_createFreq.Text = DomUtil.GetElementText(this.CfgDom.DocumentElement, "createFrequency"); this.checkBox_property_fresh.Checked = DomUtil.GetBooleanParam( this.CfgDom.DocumentElement, "property", "fresh", false); }
// 填充一行的信息 int FillLine( ListViewItem item, out string strError) { strError = ""; Debug.Assert(item.Tag != null, ""); ItemInfo info = (ItemInfo)item.Tag; string strRecPath = info.RecPath; string strPatronXml = info.PatronXml; string strBiblioHtml = info.PatronHtml; XmlDocument dom = new XmlDocument(); try { dom.LoadXml(strPatronXml); } catch (Exception ex) { strError = "XML装入DOM失败: " + ex.Message; return(-1); } string strBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strState = DomUtil.GetElementText(dom.DocumentElement, "state"); string strName = DomUtil.GetElementText(dom.DocumentElement, "name"); string strGender = DomUtil.GetElementText(dom.DocumentElement, "gender"); string strDepartment = DomUtil.GetElementText(dom.DocumentElement, "department"); string strIdCardNumber = DomUtil.GetElementText(dom.DocumentElement, "idCardNumber"); string strComment = DomUtil.GetElementText(dom.DocumentElement, "comment"); ListViewUtil.ChangeItemText(item, COLUMN_BARCODE, strBarcode); // item.SubItems.Add(strBarcode); ListViewUtil.ChangeItemText(item, COLUMN_STATE, strState); ListViewUtil.ChangeItemText(item, COLUMN_NAME, strName); ListViewUtil.ChangeItemText(item, COLUMN_GENDER, strGender); ListViewUtil.ChangeItemText(item, COLUMN_DEPARTMENT, strDepartment); ListViewUtil.ChangeItemText(item, COLUMN_IDCARDNUMBER, strIdCardNumber); ListViewUtil.ChangeItemText(item, COLUMN_COMMENT, strComment); ListViewUtil.ChangeItemText(item, COLUMN_RECPATH, strRecPath); // item.BackColor = SystemColors.Window; return(0); }
// 初始化 public int Init(string configFile, out string error) { error = ""; // 解析xml XmlDocument dom = new XmlDocument(); try { dom.Load(configFile); } catch (Exception ex) { error = ex.Message; return(-1); } XmlNode root = dom.DocumentElement; /* * <root> * <datasource servertype="mognodb" servername="mongodb://localhost:27017" userid="" password="" /> * <keysize>255</keysize> * <db name="bible" idrule='guid' seed='1' /> * <db name="entity" idrule='guid' seed='1'/> * </root> */ this.Connection = DomUtil.GetElementAttr(root, "datasource", "servername"); this.MClient = new MongoClient(this.Connection); string keysizeStr = DomUtil.GetElementText(root, "keysize"); this.keysize = Convert.ToInt32(keysize); XmlNodeList dbList = root.SelectNodes("db"); foreach (XmlNode node in dbList) { string name = DomUtil.GetElementAttr(node, "", "name"); if (name == "biblio") { this.BiblioDb = new BiblioDatabase(node); } else if (name == "entity") { this.EntityDb = new EntityDatabase(node); } else { // 不支持的数据库类型 } } return(0); }
// readerdom发生变化后,刷新相关域 public static void RefreshReaderAccount(ref ReaderInfo readerinfo, XmlDocument readerdom) { readerinfo.Barcode = DomUtil.GetElementText(readerdom.DocumentElement, "barcode"); readerinfo.Name = DomUtil.GetElementText(readerdom.DocumentElement, "name"); readerinfo.DisplayName = DomUtil.GetElementText(readerdom.DocumentElement, "displayName"); readerinfo.ReaderDomLastTime = DateTime.Now; }
public void Output(StreamWriter sw, string strSheetDefName) { XmlDocument dom = new XmlDocument(); dom.LoadXml(this.Xml); string strLibraryName = DomUtil.GetElementText(dom.DocumentElement, "libraryCode"); // 2017/10/19 if (string.IsNullOrEmpty(strLibraryName)) { strLibraryName = Program.MainForm.LibraryName; } string strBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strDepartment = DomUtil.GetElementText(dom.DocumentElement, "department"); string strName = DomUtil.GetElementText(dom.DocumentElement, "name"); string strReaderType = DomUtil.GetElementText(dom.DocumentElement, "readerType"); string strExpire = DomUtil.GetElementText(dom.DocumentElement, "expireDate"); if (string.IsNullOrEmpty(strExpire) == false) { strExpire = DateTimeUtil.LocalDate(strExpire); } if (strSheetDefName.ToLower().IndexOf("card") != -1) { sw.WriteLine(strBarcode); sw.WriteLine(strLibraryName); sw.WriteLine(strDepartment); sw.WriteLine(strName); sw.WriteLine("读者类型: " + strReaderType); sw.WriteLine("失效期: " + strExpire); sw.WriteLine(strBarcode); if (strSheetDefName.ToLower().IndexOf("photo") != -1) { sw.WriteLine(this.CardPhotoPath); } sw.WriteLine("***"); return; } sw.WriteLine(strName); sw.WriteLine(strDepartment); sw.WriteLine(strBarcode); if (strSheetDefName.ToLower().IndexOf("photo") != -1) { sw.WriteLine(this.CardPhotoPath); } sw.WriteLine("***"); }
// 从 XML 元素设置到 XML 属性 public static void SetAttribute(XmlDocument domLog, string strAttrName, XmlElement nodeBorrow) { string strValue = DomUtil.GetElementText(domLog.DocumentElement, strAttrName); if (string.IsNullOrEmpty(strValue) == false) { nodeBorrow.SetAttribute(strAttrName, strValue); } }
internal override void DomToMember(string strRecPath) { this.Index = DomUtil.GetElementText(this._dataDom.DocumentElement, "index"); this.State = DomUtil.GetElementText(this._dataDom.DocumentElement, "state"); this.CatalogNo = DomUtil.GetElementText(this._dataDom.DocumentElement, "catalogNo"); this.Seller = DomUtil.GetElementText(this._dataDom.DocumentElement, "seller"); this.Source = DomUtil.GetElementText(this._dataDom.DocumentElement, "source"); this.Range = DomUtil.GetElementText(this._dataDom.DocumentElement, "range"); this.IssueCount = DomUtil.GetElementText(this._dataDom.DocumentElement, "issueCount"); this.Copy = DomUtil.GetElementText(this._dataDom.DocumentElement, "copy"); this.Price = DomUtil.GetElementText(this._dataDom.DocumentElement, "price"); this.TotalPrice = DomUtil.GetElementText(this._dataDom.DocumentElement, "totalPrice"); this.FixedPrice = DomUtil.GetElementText(this._dataDom.DocumentElement, "fixedPrice"); this.Discount = DomUtil.GetElementText(this._dataDom.DocumentElement, "discount"); this.OrderTime = DomUtil.GetElementText(this._dataDom.DocumentElement, "orderTime"); this.OrderID = DomUtil.GetElementText(this._dataDom.DocumentElement, "orderID"); this.Distribute = DomUtil.GetElementText(this._dataDom.DocumentElement, "distribute"); this.Class = DomUtil.GetElementText(this._dataDom.DocumentElement, "class"); this.SellerAddress = DomUtil.GetElementInnerXml(this._dataDom.DocumentElement, "sellerAddress"); this.Comment = DomUtil.GetElementText(this._dataDom.DocumentElement, "comment"); this.BatchNo = DomUtil.GetElementText(this._dataDom.DocumentElement, "batchNo"); this.ParentId = DomUtil.GetElementText(this._dataDom.DocumentElement, "parent"); this.RefID = DomUtil.GetElementText(this._dataDom.DocumentElement, "refID"); this.Operations = DomUtil.GetElementInnerXml(this._dataDom.DocumentElement, "operations"); this.RecPath = strRecPath; }
void FillReportList() { DirectoryInfo di = new DirectoryInfo(this.DataDir); var fis = di.GetFiles(); foreach (var fi in fis) { XmlDocument dom = new XmlDocument(); dom.Load(fi.FullName); string typeName = DomUtil.GetElementText(dom.DocumentElement, "typeName").Replace(" ", "\t"); this.comboBox_reportType.Items.Add(typeName); } }
// 获得默认值模板的字段值 public static string GetFieldValue(string strEntry, string strFieldName) { string strNormalDefault = Program.MainForm.AppInfo.GetString( "entityform_optiondlg", strEntry, "<root />"); XmlDocument dom = new XmlDocument(); dom.LoadXml(strNormalDefault); return(DomUtil.GetElementText(dom.DocumentElement, strFieldName)); }
// 根据日志 XML 记录填充数据 public override int SetData(XmlDocument dom, string strDate, long lIndex, out List <OperBase> lines, out string strError) { strError = ""; int nRet = base.SetData(dom, strDate, lIndex, out lines, out strError); if (nRet == -1) { return(-1); } string strItemBarcode = DomUtil.GetElementText(dom.DocumentElement, "itemBarcode"); string strReaderBarcode = DomUtil.GetElementText(dom.DocumentElement, "readerBarcode"); string strBorrowPeriod = DomUtil.GetElementText(dom.DocumentElement, "borrowPeriod"); if (string.IsNullOrEmpty(strBorrowPeriod) == false) { // parameters: // strBorrowTime 借阅起点时间。u 格式 // strReturningTime 返回应还时间。 u 格式 nRet = Replication.BuildReturingTimeString(this.OperTime, strBorrowPeriod, out DateTime returningTime, out string error); if (nRet == -1) { this.ReturningTime = DateTime.MinValue; } else { this.ReturningTime = returningTime; } } else { this.ReturningTime = DateTime.MinValue; } this.ItemBarcode = strItemBarcode; this.ReaderBarcode = strReaderBarcode; return(0); }
// 2012/9/29 // 是否允许对旧记录进行修改(或者移动)? // parameters: // return: // -1 出错。不允许修改。 // 0 不允许修改,因为权限不够等原因。原因在strError中 // 1 可以修改 public override int CanChange( SessionInfo sessioninfo, string strAction, XmlDocument domExist, XmlDocument domNew, out string strError) { strError = ""; if (sessioninfo == null) { strError = "sessioninfo == null"; return(-1); } if (strAction == "move") { if (sessioninfo.UserType == "reader") { strError = "读者身份的用户不能移动订购记录"; return(0); } if (sessioninfo.GlobalUser == false) { // 再看已经存在的内容是不是全部在管辖之下 string strDistribute = DomUtil.GetElementText(domExist.DocumentElement, "distribute"); // 观察一个馆藏分配字符串,看看是否在当前用户管辖范围内 // return: // -1 出错 // 0 超过管辖范围。strError中有解释 // 1 在管辖范围内 int nRet = DistributeInControlled(strDistribute, sessioninfo.LibraryCodeList, out strError); if (nRet == -1) { return(-1); } if (nRet == 0) { strError = "因原记录中出现了超越当前用户管辖范围的分馆馆藏信息,移动订购记录的操作被拒绝:" + strError; return(0); } } } return(1); }
// 从报表配置文件中获得各种配置信息 // return: // -1 出错 // 0 没有找到配置文件 // 1 成功 internal static int GetReportConfig(string strCfgFile, out ReportConfigStruct config, out string strError) { strError = ""; config = new ReportConfigStruct(); XmlDocument dom = new XmlDocument(); try { dom.Load(strCfgFile); } catch (FileNotFoundException) { strError = "配置文件 '" + strCfgFile + "' 没有找到"; return(0); } catch (Exception ex) { strError = "报表配置文件 " + strCfgFile + " 打开错误: " + ex.Message; return(-1); } XmlNode nodeProperty = dom.DocumentElement.SelectSingleNode("property"); if (nodeProperty != null) { bool bValue = false; int nRet = DomUtil.GetBooleanParam(nodeProperty, "fresh", false, out bValue, out strError); if (nRet == -1) { return(-1); } config.Fresh = bValue; } config.ColumnSortStyle = DomUtil.GetElementText(dom.DocumentElement, "columnSortStyle"); config.TypeName = DomUtil.GetElementText(dom.DocumentElement, "typeName"); config.CreateFreq = DomUtil.GetElementText(dom.DocumentElement, "createFrequency"); return(1); }
void SetValue(XmlDocument dom, string strElementName, string strControlName = null) { if (String.IsNullOrEmpty(strControlName) == true) { strControlName = strElementName; } string strValue = DomUtil.GetElementText(dom.DocumentElement, strElementName); LiteralControl text = (LiteralControl)this.FindControl(strControlName); text.Text = strValue; }
/// <summary> /// 设置数据 /// </summary> /// <param name="strXml">地址 XML</param> /// <param name="strError">返回出错信息</param> /// <returns>-1: 出错; 0: 成功</returns> public int SetData(string strXml, out string strError) { strError = ""; this.OldRecord = strXml; this.RecordDom = new XmlDocument(); try { this.RecordDom.LoadXml(strXml); } catch (Exception ex) { strError = "XML数据装载到DOM时出错" + ex.Message; return(-1); } this.Initializing = true; this.Zipcode = DomUtil.GetElementText(this.RecordDom.DocumentElement, "zipcode"); this.Address = DomUtil.GetElementText(this.RecordDom.DocumentElement, "address"); this.Department = DomUtil.GetElementText(this.RecordDom.DocumentElement, "department"); this.PersonName = DomUtil.GetElementText(this.RecordDom.DocumentElement, "name"); this.Tel = DomUtil.GetElementText(this.RecordDom.DocumentElement, "tel"); this.Email = DomUtil.GetElementText(this.RecordDom.DocumentElement, "email"); this.Bank = DomUtil.GetElementText(this.RecordDom.DocumentElement, "bank"); this.Accounts = DomUtil.GetElementText(this.RecordDom.DocumentElement, "accounts"); this.PayStyle = DomUtil.GetElementText(this.RecordDom.DocumentElement, "payStyle"); this.Comment = DomUtil.GetElementText(this.RecordDom.DocumentElement, "comment"); this.Initializing = false; this.Changed = false; return(0); }
/// <summary> /// /// </summary> /// <param name="openid"></param> /// <param name="myinfo"></param> /// <param name="strError"></param> /// <returns> /// -1 出错 /// 0 未找到读者记录 /// 1 成功 /// </returns> public override int GetMyInfo(string remoteUserName, string strReaderBarcode, out string strMyInfo, out string strError) { strError = ""; strMyInfo = ""; Debug.Assert(String.IsNullOrEmpty(strReaderBarcode) == false); // 得到高级xml string strXml = ""; long lRet = this.GetReaderAdvanceXml(strReaderBarcode, out strXml, out strError); if (lRet == -1) { return(-1); } // 取出个人信息 XmlDocument dom = new XmlDocument(); dom.LoadXml(strXml); //string strReaderBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strName = DomUtil.GetElementText(dom.DocumentElement, "name"); string strDepartment = DomUtil.GetElementText(dom.DocumentElement, "department"); string strState = DomUtil.GetElementText(dom.DocumentElement, "state"); string strCreateDate = DateTimeUtil.ToLocalTime(DomUtil.GetElementText(dom.DocumentElement, "createDate"), "yyyy/MM/dd"); string strExpireDate = DateTimeUtil.ToLocalTime(DomUtil.GetElementText(dom.DocumentElement, "expireDate"), "yyyy/MM/dd"); string strReaderType = DomUtil.GetElementText(dom.DocumentElement, "readerType"); string strComment = DomUtil.GetElementText(dom.DocumentElement, "comment"); strMyInfo = "个人信息" + "\n" + "姓名:" + strName + "\n" + "证条码号:" + strReaderBarcode + "\n" + "部门:" + strDepartment + "\n" + "联系方式:\n" + GetContactString(dom) + "\n" + "状态:" + strState + "\n" + "有效期:" + strCreateDate + "~" + strExpireDate + "\n" + "读者类别:" + strReaderType + "\n" + "注释:" + strComment; return(1); }
// 检查借阅证是否超期,是否有挂失等状态 // text-level: 用户提示 OPAC预约功能要调用此函数 // return: // -1 检测过程发生了错误。应当作不能借阅来处理 // 0 可以借阅 // 1 证已经过了失效期,不能借阅 // 2 证有不让借阅的状态 public static int CheckReaderExpireAndState(XmlDocument readerdom, out string strError) { strError = ""; string strExpireDate = DomUtil.GetElementText(readerdom.DocumentElement, "expireDate"); if (String.IsNullOrEmpty(strExpireDate) == false) { DateTime expireDate; try { expireDate = DateTimeUtil.FromRfc1123DateTimeString(strExpireDate); } catch { // text-level: 内部错误 strError = $"借阅证失效期 (expireDate 元素) 值 '{strExpireDate}' 格式错误"; // "借阅证失效期<expireDate>值 '" + strExpireDate + "' 格式错误"; return(-1); } DateTime now = DateTime.UtcNow; if (expireDate <= now) { // text-level: 用户提示 strError = string.Format("今天({0})已经超过借阅证失效期({1})。", now.ToLocalTime().ToLongDateString(), expireDate.ToLocalTime().ToLongDateString()); return(1); } } string strState = DomUtil.GetElementText(readerdom.DocumentElement, "state"); if (String.IsNullOrEmpty(strState) == false) { // text-level: 用户提示 strError = string.Format("借阅证的状态为 '{0}'。", strState); return(2); } return(0); }
/// <summary> /// 构造索取号信息集合 /// </summary> /// <returns>CallNumberItem事项集合</returns> public List <CallNumberItem> GetCallNumberItems() { List <CallNumberItem> results = new List <CallNumberItem>(); foreach (BookItem book_item in this) { CallNumberItem item = new CallNumberItem(); item.RecPath = book_item.RecPath; item.CallNumber = DomUtil.GetElementText(book_item.RecordDom.DocumentElement, "accessNo"); item.Location = DomUtil.GetElementText(book_item.RecordDom.DocumentElement, "location"); item.Barcode = DomUtil.GetElementText(book_item.RecordDom.DocumentElement, "barcode"); results.Add(item); } return(results); }
static NormalResult Set(PatronItem patron, Record record, DateTime lastWriteTime) { XmlDocument dom = new XmlDocument(); try { dom.LoadXml(record.RecordBody.Xml); } catch (Exception ex) { return(new NormalResult { Value = -1, ErrorInfo = $"读者记录装载进入 XMLDOM 时出错:{ex.Message}", ErrorCode = "loadXmlError" }); } // TODO: 如果 XML 记录尺寸太大,可以考虑删除一些无关紧要的元素以后进入 patron.Xml,避免溢出 SQLite 一条记录可以存储的最大尺寸 string pii = DomUtil.GetElementText(dom.DocumentElement, "barcode"); if (string.IsNullOrEmpty(pii)) { pii = "@refID:" + DomUtil.GetElementText(dom.DocumentElement, "refID"); } string cardNumber = DomUtil.GetElementText(dom.DocumentElement, "cardNumber"); cardNumber = cardNumber.ToUpper(); if (string.IsNullOrEmpty(cardNumber) == false) { cardNumber = "," + cardNumber + ","; } patron.PII = pii; patron.RecPath = record.Path; patron.Bindings = cardNumber; patron.Xml = record.RecordBody.Xml; patron.Timestamp = record.RecordBody.Timestamp; patron.LastWriteTime = lastWriteTime; return(new NormalResult()); }
void BuildUserChangedRecord(XmlDocument domOperLog, out string strBodyXml, out string strReaderBarcode, out string strReaderRefID) { strBodyXml = ""; strReaderBarcode = ""; strReaderRefID = ""; #if NO string strOperation = DomUtil.GetElementText(domOperLog.DocumentElement, "operation"); string strAction = DomUtil.GetElementText(domOperLog.DocumentElement, "action"); string strLibraryCode = DomUtil.GetElementText(domOperLog.DocumentElement, "libraryCode"); #endif // 构造内容 XmlDocument bodydom = new XmlDocument(); bodydom.LoadXml("<root />"); DomUtil.SetElementText(bodydom.DocumentElement, "type", "工作人员账户变动"); // 复制日志记录中的一级元素 { XmlNodeList nodes = domOperLog.DocumentElement.SelectNodes("*"); foreach (XmlNode node in nodes) { DomUtil.SetElementOuterXml(bodydom.DocumentElement, node.Name, node.OuterXml); } } // 将 oldAccount 和 account 元素中的 password 属性删除 { XmlNodeList nodes = bodydom.DocumentElement.SelectNodes("oldAccount | account"); foreach (XmlElement node in nodes) { if (node.HasAttribute("password") == true) { node.RemoveAttribute("password"); } } } strBodyXml = bodydom.DocumentElement.OuterXml; }
static string GetReaderBarcode(XmlDocument dom) { string strReaderBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); if (string.IsNullOrEmpty(strReaderBarcode) == false) { return(strReaderBarcode); } string strRefID = DomUtil.GetElementText(dom.DocumentElement, "refID"); if (string.IsNullOrEmpty(strRefID)) { return(""); } return("@refID:" + strRefID); }
/* * libraryName: 图书馆名字 * barcode: 读者证条码号 * department: 单位 * name: 读者姓名 * readerType: 读者类型 * expire: 证失效期。本地时间格式,注意和 expireDate 元素内容不同 * cardPhotoPath: 证件照片图像文件路径 * */ // parameters: // strTemplate 模板。定义了如何输出读者信息中的每一行 public void OutputByTemplate(StreamWriter sw, string strTemplate) { XmlDocument dom = new XmlDocument(); dom.LoadXml(this.Xml); string strLibraryName = DomUtil.GetElementText(dom.DocumentElement, "libraryCode"); if (string.IsNullOrEmpty(strLibraryName)) { strLibraryName = Program.MainForm.LibraryName; } string strBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); string strDepartment = DomUtil.GetElementText(dom.DocumentElement, "department"); string strName = DomUtil.GetElementText(dom.DocumentElement, "name"); string strGender = DomUtil.GetElementText(dom.DocumentElement, "gender"); string strReaderType = DomUtil.GetElementText(dom.DocumentElement, "readerType"); string strExpire = DomUtil.GetElementText(dom.DocumentElement, "expireDate"); if (string.IsNullOrEmpty(strExpire) == false) { strExpire = DateTimeUtil.LocalDate(strExpire); } Hashtable macro_table = new Hashtable(); macro_table["%libraryName%"] = strLibraryName; macro_table["%barcode%"] = strBarcode; macro_table["%department%"] = strDepartment; macro_table["%name%"] = strName; macro_table["%gender%"] = strGender; macro_table["%readerType%"] = strReaderType; macro_table["%expire%"] = strExpire; macro_table["%cardPhotoPath%"] = this.CardPhotoPath; string strResult = StringUtil.MacroString(macro_table, strTemplate); sw.WriteLine(strResult); sw.WriteLine("***"); }
// 从 XML 元素设置到 XML 属性 public static void SetAttribute(ref XmlDocument dom, string strElementName, XmlElement nodeBorrow, string strAttrName, bool bDeleteElement) { string strValue = DomUtil.GetElementText(dom.DocumentElement, strElementName); if (string.IsNullOrEmpty(strValue) == false) { nodeBorrow.SetAttribute(strAttrName, strValue); } if (bDeleteElement == true) { DomUtil.DeleteElement(dom.DocumentElement, strElementName); } }
// 从册记录 XML 中获得册条码号 public static string GetPII(string strItemXml) { if (string.IsNullOrEmpty(strItemXml)) { return(null); } XmlDocument dom = new XmlDocument(); try { dom.LoadXml(strItemXml); } catch (Exception ex) { return(null); } return(DomUtil.GetElementText(dom.DocumentElement, "barcode")); }
public static RfidWriteInfo Build(string date, int index, XmlDocument dom) { RfidWriteInfo info = new RfidWriteInfo(); info.Date = date; info.Index = index; info.ItemBarcode = DomUtil.GetElementText(dom.DocumentElement, "itemBarcode"); info.ItemRefID = DomUtil.GetElementText(dom.DocumentElement, "itemRefID"); info.Operator = DomUtil.GetElementText(dom.DocumentElement, "operator"); string operTime = DomUtil.GetElementText(dom.DocumentElement, "operTime"); info.OperTime = DateTimeUtil.FromRfc1123DateTimeString(operTime).ToLocalTime(); return(info); }