/// <summary> /// Performs a search by ID on a data data source. /// </summary> private void FindByID_Clicked(object sender, RoutedEventArgs e) { if (!string.IsNullOrWhiteSpace(FindByIdTbx.Text)) { var request = new FindByPropertyRequest(_queryApiDataSourceSettings) { Filter = new FilterExpression("entityId", LogicalOperator.IsIn, new List <string>(FindByIdTbx.Text.Split(','))) }; MakeQueryRequest(request); } else { MessageBox.Show("Invlaid list of IDs."); } }
private async void MakeQueryRequest(FindByPropertyRequest request) { request.Top = int.Parse((string)(TopCbx.SelectedItem as ComboBoxItem).Content); Clear(); OutputTbx.Text = string.Format("Request URL:\r\n\r\n{0}\r\n\r\n", request.GetRequestUrl()); OutputTab.IsSelected = true; try { var response = await QueryManager.ProcessQuery(request); if (string.IsNullOrEmpty(response.ErrorMessage)) { if (response != null && response.Results != null && response.Results.Count > 0) { var locs = new List <Microsoft.Maps.MapControl.WPF.Location>(); var sb = new StringBuilder(); sb.AppendFormat("Found {0} results for query.\r\n\r\nResults:\r\n", response.Results.Count); for (int i = 0; i < response.Results.Count; i++) { sb.AppendFormat("[{0}]\r\n", i); sb.AppendFormat("\tLatitude: {0}\r\n", response.Results[i].Location.Latitude); sb.AppendFormat("\tLongitude: {0}\r\n", response.Results[i].Location.Longitude); sb.AppendFormat("\tDistance: {0:G2} {1}\r\n", response.Results[i].Distance, request.DistanceUnits); foreach (var p in response.Results[i].Properties) { sb.AppendFormat("\t{0}: {1}\r\n", p.Key, p.Value); } var pin = new Pushpin() { Content = i, Location = new Microsoft.Maps.MapControl.WPF.Location() { Latitude = response.Results[i].Location.Latitude, Longitude = response.Results[i].Location.Longitude } }; locs.Add(pin.Location); MyMap.Children.Add(pin); } OutputTbx.Text += sb.ToString(); SetMapView(locs); } else { OutputTbx.Text += "No results found"; } } else { OutputTbx.Text += response.ErrorMessage; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }