public string getServiceList() { var dataWorker = new DataWorker(); var allWebservices = dataWorker.getWebServiceList(); WebServiceNode wsn5588 = null; int count = 0; foreach (WebServiceNode wsn in allWebservices) { Console.WriteLine(String.Format("{0} - {1}", count++, wsn.ServiceID)); if (5588 == wsn.ServiceID) { wsn5588 = wsn; } } if (allWebservices != null) { var json = JsonConvert.SerializeObject(allWebservices); json = "{ \"data\":" + json + "}"; return(json); } else { throw new NullReferenceException(); } }
public SearchResult GetSeriesCatalogInRectangle(Box extentBox, string[] keywords, double tileWidth, double tileHeight, DateTime startDate, DateTime endDate, WebServiceNode[] serviceIDs, BusinessObjects.Models.IProgressHandler bgWorker) { if (extentBox == null) throw new ArgumentNullException("extentBox"); if (serviceIDs == null) throw new ArgumentNullException("serviceIDs"); if (bgWorker == null) throw new ArgumentNullException("bgWorker"); if (keywords == null || keywords.Length == 0) { keywords = new[] { String.Empty }; } bgWorker.CheckForCancel(); var extent = new Extent(extentBox.XMin, extentBox.YMin, extentBox.XMax, extentBox.YMax); var fullSeriesList = GetSeriesListForExtent(extent, keywords, tileWidth, tileHeight, startDate, endDate, serviceIDs, bgWorker, series => true); SearchResult resultFs = null; if (fullSeriesList.Count > 0) { bgWorker.ReportMessage("Calculating Points..."); resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); } bgWorker.CheckForCancel(); var message = string.Format("{0} Series found.", totalSeriesCount); bgWorker.ReportProgress(100, "Search Finished. " + message); return resultFs; }
private void UpdateWebServicesCaption() { var webservicesSettings = SearchSettings.Instance.WebServicesSettings; var checkedCount = webservicesSettings.CheckedCount; var totalCount = webservicesSettings.TotalCount; string caption; string hint; WebServiceNode webServiceNode = null; if (checkedCount == totalCount) { caption = "All services"; hint = caption; } else if (checkedCount == 1) { // Get single checked item var items = webservicesSettings.WebServices.Where(w => w.Checked).ToList(); Debug.Assert(items.Count == 1); webServiceNode = items[0]; caption = items[0].Title; hint = caption; } else { caption = string.Format("{0} services selected", checkedCount); hint = string.Format("{0} services", checkedCount); } rbServices.Caption = caption; rbServices.ToolTipText = string.Format("Select web services ({0} selected)", hint); ChangeWebServicesIcon(webServiceNode); }
public IEnumerable <WebServiceNode> GetWebServices() { var document = GetWebServicesFromHISCentral(_hisCentralUrl); if (document.DocumentElement == null) { return new WebServiceNode[] {} } ; var result = new List <WebServiceNode>(document.DocumentElement.ChildNodes.Count); foreach (XmlNode childNode1 in document.DocumentElement.ChildNodes) { if (childNode1.Name == "ServiceInfo") { string desciptionUrl = null; string serviceUrl = null; string title = null; string serviceID = null; string serviceCode = null; foreach (XmlNode childNode2 in childNode1.ChildNodes) { switch (childNode2.Name) { case "Title": title = childNode2.InnerText; break; case "ServiceID": serviceID = childNode2.InnerText; break; case "ServiceDescriptionURL": desciptionUrl = childNode2.InnerText; break; case "servURL": serviceUrl = childNode2.InnerText; break; case "NetworkName": serviceCode = childNode2.InnerText; break; } } var node = new WebServiceNode(title, serviceCode, serviceID, desciptionUrl, serviceUrl); result.Add(node); } } return(result); }
public SearchResult GetSeriesCatalogInPolygon(IList<IFeature> polygons, string[] keywords, double tileWidth, double tileHeight, DateTime startDate, DateTime endDate, WebServiceNode[] serviceIDs, BusinessObjects.Models.IProgressHandler bgWorker) { if (polygons == null) throw new ArgumentNullException("polygons"); if (bgWorker == null) throw new ArgumentNullException("bgWorker"); if (polygons.Count == 0) { throw new ArgumentException("The number of polygons must be greater than zero."); } if (keywords == null || keywords.Length == 0) { keywords = new[] { String.Empty }; } var fullSeriesList = new List<BusinessObjects.Models.SeriesDataCartModel.SeriesDataCart>(); for (int index = 0; index < polygons.Count; index++) { if (polygons.Count > 1) { bgWorker.ReportMessage(string.Format("Processing polygons: {0} of {1}", index + 1, polygons.Count)); } bgWorker.CheckForCancel(); var polygon = polygons[index]; var extentBox = new Extent(polygon.Envelope); var seriesForPolygon = GetSeriesListForExtent(extentBox, keywords, tileWidth, tileHeight, startDate, endDate, serviceIDs, bgWorker, item => polygon.Intersects(new Coordinate(item.Longitude, item.Latitude))); fullSeriesList.AddRange(seriesForPolygon); } SearchResult resultFs = null; if (fullSeriesList.Count > 0) { bgWorker.ReportMessage("Calculating Points..."); resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); } bgWorker.CheckForCancel(); var message = string.Format("{0} Series found.", totalSeriesCount); bgWorker.ReportProgress(100, "Search Finished. " + message); return resultFs; }
private void ChangeWebServicesIcon(WebServiceNode webServiceNode = null) { if (webServiceNode == null || string.IsNullOrEmpty(webServiceNode.ServiceCode)) { rbServices.LargeImage = Resources.server_32; rbServices.SmallImage = Resources.server_16; return; } try { var image = ServiceIconHelper.Instance.GetImageForService(webServiceNode.ServiceCode); rbServices.LargeImage = rbServices.SmallImage = image; } catch (Exception ex) { MessageBox.Show("Unable to change icon." + Environment.NewLine + ex.Message, Msg.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void gridViewWebServices_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == -1) { return; } if (e.ColumnIndex == 7) { double[] minXY = new double[2]; double[] maxXY = new double[2]; //Now convert from Lat-Long to x,y coordinates that App.Map.ViewExtents can use to pan to the correct location. WebServiceNode node = (WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag; minXY = LatLonReproject(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin); maxXY = LatLonReproject(node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax); //Get extent where center is desired X,Y coordinate. App.Map.ViewExtents.MinX = minXY[0] - (minXY[0] / 20.0); App.Map.ViewExtents.MinY = minXY[1] - (minXY[1] / 20.0); App.Map.ViewExtents.MaxX = maxXY[0] + (maxXY[0] / 20.0); App.Map.ViewExtents.MaxY = maxXY[1] + (maxXY[1] / 20.0); Extent ex = App.Map.ViewExtents; _rectangleDrawing.Color = Color.Gold; _rectangleDrawing.RestoreSearchRectangle(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin, node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax); App.Map.ViewExtents = ex; } else if (e.ColumnIndex == 8) { string url; if ((url = ((WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag).DescriptionUrl) != null) { Process.Start(url); } } }
private void ChangeWebServicesIcon(WebServiceNode webServiceNode = null) { if (webServiceNode == null || string.IsNullOrEmpty(webServiceNode.ServiceCode)) { rbServices.LargeImage = Resources.server_32; rbServices.SmallImage = Resources.server_16; return; } try { var imageHelper = new ServiceIconHelper(SearchSettings.Instance.CatalogSettings.HISCentralUrl); var image = imageHelper.GetImageForService(webServiceNode.ServiceCode); rbServices.LargeImage = rbServices.SmallImage = image; } catch (Exception ex) { MessageBox.Show("Unable to change icon." + Environment.NewLine + "Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private List <WebServiceNode> getWebserviceNodeList(string xmlData) { var list = new List <WebServiceNode>(); var xmlReaderSettings = new XmlReaderSettings { CloseInput = true, IgnoreComments = true, IgnoreWhitespace = true, }; using (var reader = XmlReader.Create(new StringReader(xmlData), 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); list.Add(node); } } } } return(list); }
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 (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) { 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); }