示例#1
0
        /// <summary>
        /// Gets the ontology tree as a xml file
        /// </summary>
        /// <returns>the tree xml
        /// </returns>
        public string GetOntologyTree()
        {
            string soapAction = @"http://hiscentral.cuahsi.org/20100205/getOntologyTree";

            StringBuilder soapEnvelope = new StringBuilder();

            soapEnvelope.Append(soapEnvelopeHeader);
            soapEnvelope.Append(@"<getOntologyTree ");
            soapEnvelope.Append(cuahsiXmlns);
            soapEnvelope.Append(@"><conceptKeyword>Hydrosphere</conceptKeyword></getOntologyTree>");
            soapEnvelope.Append(soapEnvelopeClosing);

            watch1.Reset();
            WebResponse resp = SoapHelper.HttpSOAPRequest(soapEnvelope.ToString(), soapAction);

            watch1.Stop();
            Debug.WriteLine("getOntologyTree: " + watch1.ElapsedMilliseconds);

            Stream       stm = resp.GetResponseStream();
            StreamReader r   = new StreamReader(stm);
            // process SOAP return doc here.
            string result = r.ReadToEnd();

            r.Close();
            resp.Close();
            return(result);
        }
示例#2
0
        /// <summary>
        /// Retrieves information about CUAHSI WaterOneFlow web services available in the specified region
        /// (latitude / longitude bounding box).
        /// </summary>
        /// <param name="xmin">Minimum x (longitude)</param>
        /// <param name="xmax">Maximum x (longitude)</param>
        /// <param name="ymax">Maximum y (latitude)</param>
        /// <param name="ymin">Minimum y (latitude)</param>
        /// <returns></returns>
        public IList <DataServiceInfo> GetServicesInBox(double xmin, double ymin, double xmax, double ymax)
        {
            List <DataServiceInfo> serviceList = new List <DataServiceInfo>();
            string soapAction = cuahsiSoapAction + "GetServicesInBox2";

            StringBuilder soap = new StringBuilder();

            soap.Append(soapEnvelopeHeader);
            soap.Append(@"<GetServicesInBox2 ");
            soap.Append(cuahsiXmlns);
            soap.Append(@">");
            soap.Append(@"<xmin>");
            soap.Append(xmin.ToString(CultureInfo.InvariantCulture));
            soap.Append(@"</xmin>");
            soap.Append(@"<ymin>");
            soap.Append(ymin.ToString(CultureInfo.InvariantCulture));
            soap.Append(@"</ymin>");
            soap.Append(@"<xmax>");
            soap.Append(xmax.ToString(CultureInfo.InvariantCulture));
            soap.Append(@"</xmax>");
            soap.Append(@"<ymax>");
            soap.Append(ymax.ToString(CultureInfo.InvariantCulture));
            soap.Append(@"</ymax>");
            soap.Append(@"</GetServicesInBox2>");
            soap.Append(soapEnvelopeClosing);

            WebResponse   response       = SoapHelper.HttpSOAPRequest(soap.ToString(), soapAction);
            Stream        responseStream = response.GetResponseStream();
            XmlTextReader reader         = new XmlTextReader(responseStream);

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    string readerName = reader.Name.ToLower();

                    if (readerName == "serviceinfo")
                    {
                        //Read the site information
                        DataServiceInfo service = ReadDataServiceInfo(reader);
                        if (service != null)
                        {
                            serviceList.Add(service);
                        }
                    }
                }
            }
            reader.Close();
            responseStream.Close();
            response.Close();

            return(serviceList);
        }