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