コード例 #1
0
ファイル: itemxml2html.cs プロジェクト: liuyanchen1994/dp2
    static string GetOneTR(XmlNode root,
                           string strElementName,
                           string strTitle)
    {
        string strValue = DomUtil.GetElementText(root, strElementName);

        return(GetOneTR(strElementName, strTitle, strValue));
    }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
ファイル: ArriveMonitor.cs プロジェクト: zhangandding/dp2
        // 获得读者类型
        // 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;
        }
コード例 #4
0
        // 获得历史信息
        // 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);
            }
        }
コード例 #5
0
        // 记录是否允许删除?
        // 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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: ReportDefForm.cs プロジェクト: zszqwe/dp2
        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);
        }
コード例 #8
0
ファイル: SelectPatronDialog.cs プロジェクト: ashuroxx7/dp2
        // 填充一行的信息
        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);
        }
コード例 #9
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);
        }
コード例 #10
0
ファイル: SessionInfo.cs プロジェクト: zszqwe/dp2
        // 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;
        }
コード例 #11
0
ファイル: PrintReaderSheetDialog.cs プロジェクト: zszqwe/dp2
        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("***");
        }
コード例 #12
0
ファイル: LibraryServerUtil.cs プロジェクト: zgren/dp2
        // 从 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);
            }
        }
コード例 #13
0
        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;
        }
コード例 #14
0
ファイル: BuildReportDialog.cs プロジェクト: zgren/dp2
        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);
            }
        }
コード例 #15
0
        // 获得默认值模板的字段值
        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));
        }
コード例 #16
0
        // 根据日志 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);
        }
コード例 #17
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);
        }
コード例 #18
0
ファイル: ReportDefForm.cs プロジェクト: zszqwe/dp2
        // 从报表配置文件中获得各种配置信息
        // 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);
        }
コード例 #19
0
ファイル: ItemControl.cs プロジェクト: zhangandding/dp2
        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;
        }
コード例 #20
0
ファイル: PersonAddressControl.cs プロジェクト: zinsser/dp2
        /// <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);
        }
コード例 #21
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);
        }
コード例 #22
0
ファイル: LibraryServerUtil.cs プロジェクト: zgren/dp2
        // 检查借阅证是否超期,是否有挂失等状态
        // 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);
        }
コード例 #23
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);
        }
コード例 #24
0
ファイル: PatronReplication.cs プロジェクト: kevinlau2015/dp2
        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());
        }
コード例 #25
0
        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;
        }
コード例 #26
0
        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);
        }
コード例 #27
0
        /*
         * 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("***");
        }
コード例 #28
0
ファイル: LibraryServerUtil.cs プロジェクト: zgren/dp2
        // 从 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);
            }
        }
コード例 #29
0
        // 从册记录 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"));
        }
コード例 #30
0
ファイル: OperLogReport.cs プロジェクト: zgren/dp2
        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);
        }