Exemplo n.º 1
0
        public BaseCollection <DCTSearchResult> DCMSearchDoc(string[] keyWords)
        {
            MCS.Library.Core.ServerInfo  serverInfo  = MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].ToServerInfo();
            System.Net.NetworkCredential Credentials = new System.Net.NetworkCredential(serverInfo.Identity.LogOnName, serverInfo.Identity.Password, serverInfo.Identity.Domain);
            string       searchServiceUrl            = MCS.Library.Core.UriHelper.CombinePath(MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].ServerName, MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].MossSearchServiceUrl);
            QueryService queryService = new QueryService(searchServiceUrl, Credentials);

            BaseCollection <DCTSearchResult> result = new BaseCollection <DCTSearchResult>();
            StringBuilder queryXml = new StringBuilder();

            queryXml.Append("<QueryPacket xmlns=\"urn:Microsoft.Search.Query\" Revision=\"1000\">");
            queryXml.Append("<Query domain=\"QDomain\">");
            queryXml.Append("<SupportedFormats>");
            queryXml.Append("<Format>");
            queryXml.Append("urn:Microsoft.Search.Response.Document.Document");
            queryXml.Append("</Format>");
            queryXml.Append("</SupportedFormats>");
            queryXml.Append("<Range>");
            queryXml.Append("<Count>50</Count>");
            queryXml.Append("</Range>");
            queryXml.Append("<Context>");
            queryXml.Append("<QueryText language=\"en-US\" type=\"STRING\">");
            foreach (string item in keyWords)
            {
                queryXml.Append(string.Format("{0} ", item));
            }

            queryXml.Append("</QueryText>");
            queryXml.Append("</Context>");
            queryXml.Append("</Query>");

            queryXml.Append("</QueryPacket>");
            try
            {
                using (DocLibContext context = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
                {
                    DataSet dsQueryResult = queryService.QueryEx(queryXml.ToString());
                    IEnumerable <DataRow> drQueryResult = from row in dsQueryResult.Tables[0].AsEnumerable()
                                                          where row.Field <bool>("IsDocument") == true
                                                          select row;
                    foreach (var item in drQueryResult)
                    {
                        DCTSearchResult searchResult = new DCTSearchResult();
                        searchResult.Title = item["Title"].ToString();
                        searchResult.Size  = int.Parse(item["Size"].ToString());
                        searchResult.HitHighlightedSummary = item["HitHighlightedSummary"].ToString();
                        searchResult.LastModifiedDate      = DateTime.Parse(item["Write"].ToString());
                        searchResult.Path = item["Path"].ToString().ToLower().Replace(context.Url.ToLower(), "");
                        result.Add(searchResult);
                    }
                    return(result);
                }
            }
            catch (SoapException ex)
            {
                throw ex;
            }
        }
		public BaseCollection<DCTSearchResult> DCMSearchDoc(string[] keyWords)
		{
			MCS.Library.Core.ServerInfo serverInfo = MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].ToServerInfo();
			System.Net.NetworkCredential Credentials = new System.Net.NetworkCredential(serverInfo.Identity.LogOnName, serverInfo.Identity.Password, serverInfo.Identity.Domain);
			string searchServiceUrl = MCS.Library.Core.UriHelper.CombinePath(MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].ServerName, MossServerInfoConfigurationSettings.GetConfig().Servers["documentServer"].MossSearchServiceUrl);
			QueryService queryService = new QueryService(searchServiceUrl, Credentials);

			BaseCollection<DCTSearchResult> result = new BaseCollection<DCTSearchResult>();
			StringBuilder queryXml = new StringBuilder();
			queryXml.Append("<QueryPacket xmlns=\"urn:Microsoft.Search.Query\" Revision=\"1000\">");
			queryXml.Append("<Query domain=\"QDomain\">");
			queryXml.Append("<SupportedFormats>");
			queryXml.Append("<Format>");
			queryXml.Append("urn:Microsoft.Search.Response.Document.Document");
			queryXml.Append("</Format>");
			queryXml.Append("</SupportedFormats>");
			queryXml.Append("<Range>");
			queryXml.Append("<Count>50</Count>");
			queryXml.Append("</Range>");
			queryXml.Append("<Context>");
			queryXml.Append("<QueryText language=\"en-US\" type=\"STRING\">");
			foreach (string item in keyWords)
			{
				queryXml.Append(string.Format("{0} ", item));
			}

			queryXml.Append("</QueryText>");
			queryXml.Append("</Context>");
			queryXml.Append("</Query>");

			queryXml.Append("</QueryPacket>");
			try
			{
				using (DocLibContext context = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
				{
					DataSet dsQueryResult = queryService.QueryEx(queryXml.ToString());
					IEnumerable<DataRow> drQueryResult = from row in dsQueryResult.Tables[0].AsEnumerable()
														 where row.Field<bool>("IsDocument") == true
														 select row;
					foreach (var item in drQueryResult)
					{
						DCTSearchResult searchResult = new DCTSearchResult();
						searchResult.Title = item["Title"].ToString();
						searchResult.Size = int.Parse(item["Size"].ToString());
						searchResult.HitHighlightedSummary = item["HitHighlightedSummary"].ToString();
						searchResult.LastModifiedDate = DateTime.Parse(item["Write"].ToString());
						searchResult.Path = item["Path"].ToString().ToLower().Replace(context.Url.ToLower(), "");
						result.Add(searchResult);
					}
					return result;
				}
			}
			catch (SoapException ex)
			{
				throw ex;
			}
		}