Пример #1
0
        /// <summary>
        /// 根据书目序号得到详细的参考信息
        /// </summary>
        /// <param name="nIndex">书目序号,从1排序</param>
        /// <param name="strInfo"></param>
        /// <param name="strError"></param>
        /// <returns></returns>
        public override int GetDetailBiblioInfo(string remoteUserName,
                                                SearchCommand searchCmd,
                                                int nIndex,
                                                out string strBiblioInfo,
                                                out string strError)
        {
            strBiblioInfo = "";
            strError      = "";
            Debug.Assert(searchCmd != null);

            //检查有无超过数组界面
            if (nIndex <= 0 || searchCmd.BiblioResultPathList.Count < nIndex)
            {
                strError = "您输入的书目序号[" + nIndex.ToString() + "]越出范围。";
                return(-1);
            }

            // 获取路径,注意要截取
            string strPath = searchCmd.BiblioResultPathList[nIndex - 1];
            int    index   = strPath.IndexOf("*");

            if (index > 0)
            {
                strPath = strPath.Substring(0, index);
            }

            LibraryChannel channel = this.ChannelPool.GetChannel(this.dp2Url, this.dp2UserName);

            channel.Password = this.dp2Password;
            try
            {
                long lRet1 = channel.GetBiblioDetail(strPath,
                                                     out strBiblioInfo,
                                                     out strError);
                if (lRet1 == -1)
                {
                    strError = "获取详细信息失败:" + strError;
                    return(-1);
                }
            }
            finally
            {
                this.ChannelPool.ReturnChannel(channel);
            }
            return(0);
        }