private XmlDocument GetWebServicesFromHISCentral(string hisCentralUrl) { var searcher = new HISCentralSearcher(hisCentralUrl); RefreshListFromHisCentral(searcher); var document = new XmlDocument(); try { document.Load(WebServicesFilename); } catch (Exception ex) { log.Error("Error in GetWebServicesFromHISCentral", ex); } if (File.Exists(WebServicesFilename)) { return(document); } throw new Exception(); }
public IEnumerable <WebServiceNode> GetWebServices() { var searcher = new HISCentralSearcher(_hisCentralUrl); RefreshListFromHisCentral(searcher); var xmlReaderSettings = new XmlReaderSettings { CloseInput = true, IgnoreComments = true, IgnoreWhitespace = true, }; var result = new List <WebServiceNode>(); using (var reader = XmlReader.Create(WebServicesFilename, xmlReaderSettings)) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (XmlContext.AdvanceReaderPastEmptyElement(reader)) { //Empty element - advance and continue... continue; } if (reader.Name == "ServiceInfo") { string desciptionUrl = null; string serviceUrl = null; string title = null; int serviceID = -1; string serviceCode = null; string organization = null; int variables = -1, values = -1, sites = -1; double xmin = double.NaN, xmax = double.NaN, ymin = double.NaN, ymax = double.NaN; while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "ServiceInfo") { break; } if (reader.NodeType == XmlNodeType.Element) { if (XmlContext.AdvanceReaderPastEmptyElement(reader)) { //Empty element - advance and continue... continue; } switch (reader.Name) { case "Title": if (!reader.Read()) { continue; } title = reader.Value.Trim(); break; case "ServiceID": if (!reader.Read()) { continue; } serviceID = Convert.ToInt32(reader.Value.Trim()); break; case "ServiceDescriptionURL": if (!reader.Read()) { continue; } desciptionUrl = reader.Value.Trim(); break; case "organization": if (!reader.Read()) { continue; } organization = reader.Value.Trim(); break; case "servURL": if (!reader.Read()) { continue; } serviceUrl = reader.Value.Trim(); break; case "valuecount": if (!reader.Read()) { continue; } values = Convert.ToInt32(reader.Value.Trim()); break; case "variablecount": if (!reader.Read()) { continue; } variables = Convert.ToInt32(reader.Value.Trim()); break; case "sitecount": if (!reader.Read()) { continue; } sites = Convert.ToInt32(reader.Value.Trim()); break; case "NetworkName": if (!reader.Read()) { continue; } serviceCode = reader.Value.Trim(); break; case "minx": if (!reader.Read()) { continue; } double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, out xmin); break; case "maxx": if (!reader.Read()) { continue; } double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, out xmax); break; case "miny": if (!reader.Read()) { continue; } double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, out ymin); break; case "maxy": if (!reader.Read()) { continue; } double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, out ymax); break; } } } var boundingBox = (Box)null; if (!double.IsNaN(xmin) && !double.IsNaN(xmax) && !double.IsNaN(ymin) && !double.IsNaN(ymax)) { boundingBox = new Box(xmin, xmax, ymin, ymax); } var node = new WebServiceNode(title, serviceCode, serviceID, desciptionUrl, serviceUrl, boundingBox, organization, sites, variables, values); result.Add(node); } } } } return(result); }
public void RefreshListFromHisCentral(HISCentralSearcher searcher) { searcher.GetWebServicesXml(WebServicesFilename, Encoding.UTF8.CodePage); }
private void RefreshListFromHisCentral(HISCentralSearcher searcher) { searcher.GetWebServicesXml(WebServicesFilename); }