SearchService.cs


using System;
using System.IO;
using System.Xml;
[
System.Web.Services.WebServiceBindingAttribute(
    Name="SearchWebService",
    Namespace="MRWebServices" )
]
public class SearchCaller : System.Web.Services.Protocols.SoapHttpClientProtocol
{
    public SearchCaller()
    {

        this.Url = "http://fakeserver/MRcgi/MRWebServices.pl";

        
        // Comment out if not using a proxy server.
        //System.Net.IWebProxy proxyObject = new System.Net.WebProxy("http://localhost:8888/", false);
        //this.Proxy = proxyObject;
    }
    [
    System.Web.Services.Protocols.SoapDocumentMethodAttribute(
        "MRWebServices#MRWebServices__search",
        RequestNamespace="MRWebServices",
        ResponseNamespace="MRWebServices",
        Use=System.Web.Services.Description.SoapBindingUse.Encoded,
        ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped )
    ]
    [return: System.Xml.Serialization.SoapElementAttribute("return")]
    public string MRWebServices__search(
        string usr,
        string pw,
        string extraInfo,
        string query
        )
    {
        object[] results = this.Invoke(
            "MRWebServices__search",
            new object[] {usr, pw, extraInfo, query} );
        return ((string)(results[0]));
    }
}
class SearchService
{
    private static string ParseXml( XmlReader reader )
    {
        string s = "";
        while( reader.Read() )
        {
            switch( reader.NodeType )
            {
                case XmlNodeType.Element:
  
                    while( reader.MoveToNextAttribute() )
                    {
                        if( reader.Name == "key" && reader.Value == "mrtitle" )
                        {
                            reader.Read();
                            s += "<b>Title:</b>" + reader.Value + "<br>";                    
                        }
                        else if( reader.Name == "key" && reader.Value == "mrid" )
                        {
                            reader.Read();
                            s += "<b>Issue Number:</b>" + reader.Value + "<br>";
                        }
                    }
                    break;
            }
        }
        return s;
    }
    public string search( string projid, string title )
    {
        System.IO.StringReader stream = null;
        System.Xml.XmlTextReader reader = null;
        try
        {
            SearchCaller search = new SearchCaller();
            string result = search.MRWebServices__search(
                "WebServices",
                "fakepassword",
                "RETURN_MODE => 'xml'",
                "select mrID, mrTITLE from MASTER" + projid + " WHERE mrTITLE LIKE '%" + title + "%'" );
 
            stream = new System.IO.StringReader( result );
            reader = new System.Xml.XmlTextReader( stream );
            return ParseXml( reader );
        }
        catch( Exception e )
        {
            throw e;
        }
        finally
        {
            if( reader != null )
            {
                reader.Close();
            }
        }
    }
}

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

FootPrints Service Core Online Help 11.6