/// <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); }
/// <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); }